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 "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) && put != ni - 2){
//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) && put != ni - 2){
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... |