# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
18803 | ggoh | Parachute rings (IOI12_rings) | C++98 | 2312 ms | 71036 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.
#include<cstdio>
#include<algorithm>
int p,q,a,cyc,t,co[5],link[1000003][2],par[5][1000002],deg[5][1000002],cycsz,sz[1000002],rank[5][1000002];
bool overtwo,check[5];
int find(int num,int AA){if(AA==par[num][AA])return AA;else return par[num][AA]=find(num,par[num][AA]);}
void unite(int num,int AA,int BB)
{
if(rank[num][AA]<rank[num][BB])par[num][AA]=BB;
else
{
if(rank[num][AA]==rank[num][BB])rank[num][AA]++;
par[num][BB]=AA;
}
}
void add(int r,int s)
{
for(int i=1;i<=4;i++)
{
if(check[i]==0)continue;
if(co[i]==r||co[i]==s)continue;
deg[i][r]++;deg[i][s]++;
if(deg[i][r]>=3||deg[i][s]>=3){check[i]=0;continue;}
int rr=find(i,r),ss=find(i,s);
if(rr==ss)check[i]=0;
else
{
unite(i,rr,ss);
}
}
# | 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... |