#include "game.h"
const int maxN = 1505;
int N;
int boss[maxN];
int edgesLeft[maxN][maxN];
void initialize(int n) {
N = n;
for (int i = 0; i < N; i++) {
boss[i] = i;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
edgesLeft[i][j] = (i != j);
}
}
}
int hasEdge(int u, int v) {
u = boss[u];
v = boss[v];
if (u == v) {
return false;
}
if (edgesLeft[u][v] > 1) {
edgesLeft[u][v]--;
edgesLeft[v][u]--;
return false;
}
boss[v] = u;
for (int i = 0; i < N; i++) {
if (boss[i] != i || i == u) {
continue;
}
edgesLeft[u][i] += edgesLeft[v][i];
edgesLeft[i][u] += edgesLeft[i][v];
}
return true;
}