# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
147711 | Ruxandra985 | Sirni (COCI17_sirni) | C++14 | 5096 ms | 412712 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/// alta mini bulaneala :)
#include <cstdio>
#include <algorithm>
#define DIM 100010
using namespace std;
int v[DIM];
pair <int,pair <int,int> > m[40000000];
int tt[DIM];
int biggest[10000010];
int fth ( int x ){
int aux;
int init = x;
while (tt[x]>=0){
x = tt[x];
}
while (tt[init]>=0){
aux = tt[init];
tt[init] = x;
init = aux;
}
return x;
}
int main()
{
// freopen ("a.in" , "r" , stdin);
// freopen ("a.out" , "w" , stdout);
int n,i,elem,p,mch,j,x,y,tx,ty;
long long sol=0;
scanf ("%d",&n);
for (i=1;i<=n;i++){
scanf ("%d",&v[i]);
}
sort (v+1,v+n+1);
elem = 0;
for (i=1;i<=n;i++){
if (i==1 || v[i]!=v[i-1])
v[++elem] = v[i];
}
n = elem;
p=n;
for (i=v[n];i;i--){
if (p && v[p] == i){
biggest[i] = p;
p--;
}
else biggest[i] = biggest[i+1];
}
mch=0;
for (i=1;i<=n;i++){
if (i!=n && v[i+1]/v[i] == 1 && v[i+1] % v[i]<=50000){
mch++;
m[mch].first = v[i+1] % v[i];
m[mch].second.first = i;
m[mch].second.second = i+1;
}
for (j=2*v[i];j<=v[n];j+=v[i]){
/// cea mai mica val mai mare decat j
x = biggest[j];
if (j/v[i] == v[x]/v[i] && v[x] % v[i]<=50000){ /// add muchie
mch++;
m[mch].first = v[x] % v[i];
m[mch].second.first = i;
m[mch].second.second = x;
}
}
}
for (i=1;i<=n;i++)
tt[i] = -1;
sort (m+1,m + mch + 1);
int pus = 0;
for (i=1;i<=mch && pus!=n-1;i++){
x = m[i].second.first;
y = m[i].second.second;
tx = fth(x);
ty = fth(y);
if (tx!=ty){
sol+=m[i].first;
pus++;
//printf ("%d ",m[i].first);
if (tt[tx] < tt[ty]){
tt[tx]+=tt[ty];
tt[ty] = tx;
}
else {
tt[ty]+=tt[tx];
tt[tx] = ty;
}
}
}
printf ("%lld",sol);
return 0;
}
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... |