Submission #760643

#TimeUsernameProblemLanguageResultExecution timeMemory
760643thinknoexit게임 (IOI14_game)C++17
0 / 100
1 ms212 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int ch[1505][1505]; int p[1505], a[1505]; int fr(int i) { if (p[i] == i) return i; return p[i] = fr(p[i]); } void initialize(int n) { for (int i = 1;i <= n;i++) { p[i] = i; a[i] = n - 1; } } int hasEdge(int u, int v) { u++, v++; if (u == v) return 0; if (ch[u][v]) { return ch[u][v] - 1; } int ans = 0; int pu = fr(u), pv = fr(v); if (pu == pv) ans = 1; else if (a[pu] == 0 || a[pv] == 0) { ans = 1; a[pu] += a[pv]; p[pv] = pu; } else --a[pu], --a[pv], ans = 0; ch[u][v] = ch[v][u] = ans + 1; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...