이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "game.h"
int lft[1510] , total , ni , ok , put , taken[1510];
void initialize (int n){
for (int i = 0 ; i < n ; i++)
lft[i] = n - 1;
ni = n;
}
int root (int x){
while (taken[x])
x = taken[x];
return x;
}
int hasEdge (int u , int v){
int aux;
if (u > v){
aux = u;
u = v;
v = aux;
}
total++; /// muchii care n au fost puse
lft[u]--;
lft[v]--;
//if (u == 0 && v == 3)
// printf ("a");
if (lft[u] == 0 && lft[v] == 0 && put == ni - 2){
//fprintf (fout , "%d %d\n" , u , v);
ok = 1;
put++;
return 1;
}
if ((lft[u] == 0 || lft[v] == 0) && lft[u] != lft[v] && root(u) != root(v)){
//fprintf (fout , "%d %d\n" , u , v);
taken[root(u)] = root(v);
put++;
return 1;
}
if (lft[u] > 0 && lft[v] > 0 && root(u) != root(v)){
taken[root(u)] = root(v);
//fprintf (fout , "%d %d\n" , u , v);
put++;
return 1;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |