# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
55324 | 2018-07-07T01:24:48 Z | IvanC | Sirni (COCI17_sirni) | C++17 | 5000 ms | 549396 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> ii; const int MAXN = 1e7 + 1; int pai[MAXN],proximo[MAXN],N,conjuntos; vector<int> ordenado; vector<ii> Kruskal[MAXN]; int find(int x){ int y = x; while(pai[y] != y) y = pai[y]; while(x != y){ int z = pai[x]; pai[x] = y; x = z; } return y; } void join(int x,int y){ x = find(x);y = find(y); if(x == y) return; conjuntos--; if(x > y) swap(x,y); pai[y] = x; } int main(){ scanf("%d",&N); int maioral = 0; for(int i = 1;i<=N;i++){ int x; scanf("%d",&x); maioral = max(maioral,x); if(pai[x] == x) continue; pai[x] = x; conjuntos++; } for(int i = 1;i<=maioral;i++){ if(pai[i] == 0) continue; ordenado.push_back(i); for(int j = 2*i;j<=maioral;j+=i) if(pai[j] != 0) join(i,j); } int ultimo_visto = ordenado.back(); for(int i = maioral;i>=1;i--){ proximo[i] = ultimo_visto; if(!ordenado.empty() && ordenado.back() == i){ ultimo_visto = i; ordenado.pop_back(); } } if(conjuntos == 1){ printf("0\n"); return 0; } for(int i = 2;i<=maioral;i++){ if(pai[i] == 0) continue; ultimo_visto = -1; for(int j = i;j<=maioral;j+=i){ int candidato = proximo[j]; if(candidato == ultimo_visto) continue; ultimo_visto = candidato; Kruskal[candidato % i].push_back(ii(i,candidato)); } } ll total = 0; for(int w = 0;w<maioral && conjuntos > 1;w++){ for(ii davez : Kruskal[w]){ int u = davez.first, v = davez.second; if(find(u) != find(v)){ join(u,v); total += w; } } } printf("%lld\n",total); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 275 ms | 278008 KB | Output is correct |
2 | Correct | 389 ms | 278648 KB | Output is correct |
3 | Correct | 290 ms | 278648 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 196 ms | 278648 KB | Output is correct |
2 | Correct | 829 ms | 278648 KB | Output is correct |
3 | Correct | 283 ms | 278648 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 286 ms | 278648 KB | Output is correct |
2 | Correct | 289 ms | 278648 KB | Output is correct |
3 | Correct | 283 ms | 278720 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 307 ms | 278720 KB | Output is correct |
2 | Correct | 437 ms | 279592 KB | Output is correct |
3 | Correct | 303 ms | 279592 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 218 ms | 279592 KB | Output is correct |
2 | Correct | 346 ms | 279592 KB | Output is correct |
3 | Correct | 249 ms | 279592 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 316 ms | 279592 KB | Output is correct |
2 | Correct | 378 ms | 294344 KB | Output is correct |
3 | Correct | 298 ms | 294344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 219 ms | 294344 KB | Output is correct |
2 | Correct | 462 ms | 294344 KB | Output is correct |
3 | Correct | 312 ms | 294344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 608 ms | 326264 KB | Output is correct |
2 | Correct | 3886 ms | 519884 KB | Output is correct |
3 | Correct | 591 ms | 519884 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 557 ms | 519884 KB | Output is correct |
2 | Execution timed out | 5073 ms | 549396 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 418 ms | 549396 KB | Output is correct |
2 | Execution timed out | 5062 ms | 549396 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |