#include <iostream>
#include <vector>
#include "game.h"
using namespace std;
int M, s[1505][1505], par[1505];
void initialize(int N){
M = N;
for (int i=1;i<=M;i++)
for (int j=1;j<=M;j++)
s[i][j] = (i != j);
}
int root(int v){
if (par[v] == 0)
return v;
par[v] = root(par[v]);
return par[v];
}
int hasEdge(int u, int v){
u = root(u);
v = root(v);
if (s[u][v] != 1){
s[u][v] = s[v][u] = s[u][v] - 1;
return 0;
}
for (int i =1;i<=M;i++)
if (i != u and i != v and root(i) == i)
s[u][i] = s[i][u] = s[i][v] + s[i][u];
par[v] = u;
return 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |