Submission #1154439

#TimeUsernameProblemLanguageResultExecution timeMemory
1154439hahahoang132Sirni (COCI17_sirni)C++20
140 / 140
2158 ms41148 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 1e6 + 5;
const ll base = 37;
const ll inf = LLONG_MAX/4;
const ll mod = 998244353;
#define bit(x,y) ((x >> y) & 1)

ll p[N];
ll fp(ll x)
{
    if(p[x] == 0) return x;
    else
    {
        p[x] = fp(p[x]);
        return p[x];
    }
}
ll c;
ll hop(ll x, ll y)
{
    ll px=fp(x);
    ll py=fp(y);
    if(px == py) return 0;
    p[px] = py;
    c--;
    return 1;
}
int haha[10000005];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    ll n;
    cin >> n;
    ll i,j;
    vector<ll> a;
    ll m = 0;
    for(i = 1;i <= n;i++)
    {
        ll x;
        cin >> x;
        m = max(m,x);
        if(!haha[x])
        {
            haha[x] = 1;
            a.push_back(x);
            haha[x] = ++c;
        }
    }
    ll d = 0;
    ll ans = 0;
    while(true)
    {
        for(auto x : a)
        {
            for(ll y = d;y <= m;y += x)
            {
                if(haha[y])
                {
                    ans += hop(haha[x],haha[y]) * d;
                }
            }
        }
        if(c == 1) break;
        d++;
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...