Submission #1240481

#TimeUsernameProblemLanguageResultExecution timeMemory
1240481Jer게임 (IOI14_game)C++20
0 / 100
0 ms328 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1505; int n, edges = 0, quest = 0; struct unionFind { int par[MAXN], size[MAXN]; unionFind() { for (int i = 0; i < MAXN; i++) par[i] = i, size[i] = 1; } int find(int x) { if (x == par[x]) return x; return (par[x] = find(par[x])); } bool same(int a, int b) { return find(a) == find(b); } void unite(int a, int b) { a = find(a), b = find(b); if (size[b] > size[a]) swap(b, a); par[b] = a; size[a] += size[b]; } }; unionFind uf; void initialize(int N) { n = N; } int hasEdge(int u, int v) { quest++; if (uf.same(u, v) or (edges == n - 2 and quest < (n * (n - 1)) / 2)) return 0; edges++; uf.unite(u, v); return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...