// mrrrow mnyaa ;3c
// go play vivid/stasis! it's a really awesome free game on steam
int links[6][6][2];
bool used[6];
int n;
void initialize(int N) {
n = N;
for (int i = 1; i <= n; i++) {
links[i][0][1] = 1;
for (int j = 0; j < n; j++) {
links[i][j + 1][0] = j;
links[i][j + 1][1] = j + 2;
}
links[i][n + 1][1] = -1;
}
}
int dfs(int i) {
if (used[i]) return 0;
int v = 1;
used[i] = true;
for (int it = links[i][0][1]; links[i][it][1] != -1; it = links[i][it][1]) v += dfs(it);
return v;
}
int hasEdge(int u, int v) {
u++, v++;
int up = links[u][v][0], un = links[u][v][1];
int vp = links[v][u][0], vn = links[v][u][1];
links[u][up][1] = un;
links[u][un][0] = up;
links[v][vp][1] = vn;
links[v][vn][0] = vp;
for (int i = 1; i <= n; i++) used[i] = false;
if (dfs(u) != n) {
links[u][up][1] = v;
links[u][un][0] = v;
links[v][vp][1] = u;
links[v][vn][0] = u;
return true;
} else return false;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |