Submission #1146960

#TimeUsernameProblemLanguageResultExecution timeMemory
1146960BlockOGGame (IOI14_game)C++20
100 / 100
217 ms15872 KiB
// mrrrow mnyaa ;3c // go play vivid/stasis! it's a really awesome free game on steam int parent[1500]; int used[1500][1500]; int n; void initialize(int N) { n = N; for (int i = 0; i < n; i++) { parent[i] = i; for (int j = 0; j < n; j++) used[i][j] = i != j; } } int get(int i) { if (parent[i] == i) return i; return parent[i] = get(parent[i]); } void merge(int a, int b) { if (a == b) return; parent[b] = a; for (int i = 0; i < n; i++) used[a][i] += used[b][i], used[i][a] += used[i][b], used[i][b] = 0; } int hasEdge(int u, int v) { u = get(u), v = get(v); used[u][v]--, used[v][u]--; if (used[u][v] == 0 || used[v][u] == 0) { merge(u, v); return true; } return false; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...