# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1167692 | Turkhuu | Sirni (COCI17_sirni) | C++20 | 845 ms | 611512 KiB |
//https://codeforces.com/blog/entry/50241?#comment-341952
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define f(i, x, n) for(int i = x; i < (int)(n); ++i)
int x[100000], nxt[10000001], p[10000001];
vector<pair<int, int> > w[10000001];
int P(int v){
if (p[v])return p[v] = P(p[v]);
return v;
}
int main(){
int n;
scanf("%d", &n);
f(i, 0, n)scanf("%d", x + i), nxt[x[i]] = x[i];
sort(x, x + n);
n = unique(x, x + n) - x;
for (int i = 9999999; i >= 0; --i)if (!nxt[i])nxt[i] = nxt[i + 1];
f(i, 0, n){
int t = x[i], z = nxt[t + 1];
if (z && z - t < t)w[z - t].push_back(make_pair(t, z));
for (int j = t << 1; j <= 10000000; j += t){
z = nxt[j];
if (!z)break;
if (z - j < t)w[z - j].push_back(make_pair(t, z));
}
}
ll an = 0;
int k = 0;
f(i, 0, 10000000){
vector<pair<int, int> > &v = w[i];
int s = v.size();
f(j, 0, s){
int x = P(v[j].first), y = P(v[j].second);
if (x == y)continue;
an += i;
p[y] = x;
if (++k + 1 == n)break;
}
if (k + 1 == n)break;
}
printf("%lld\n", an);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |