Submission #1144423

#TimeUsernameProblemLanguageResultExecution timeMemory
1144423BlockOGGame (IOI14_game)C++20
42 / 100
1095 ms4556 KiB
// mrrrow mnyaa ;3c // go play vivid/stasis! it's a really awesome free game on steam int links[1502][1502][2]; bool used[1502]; int q[1502]; 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; } } bool bfs(int i, int j) { int s = 0, e = 0; q[e++] = i; used[i] = true; while (s < e) { int i = q[s++]; if (i == j) return true; for (int it = links[i][0][1]; links[i][it][1] != -1; it = links[i][it][1]) if (!used[it]) used[it] = true, q[e++] = it; } return false; } 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 (!bfs(u, v)) { 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...