Submission #280180

#TimeUsernameProblemLanguageResultExecution timeMemory
280180SamAndGame (IOI14_game)C++17
100 / 100
620 ms25336 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; #define m_p make_pair #define fi first #define se second #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) typedef long long ll; const int N = 1503; int n; int p[N]; int q[N][N]; int fi(int x) { if (x == p[x]) return x; return p[x] = fi(p[x]); } void initialize(int n) { ::n = n; for (int i = 1; i <= n; ++i) p[i] = i; for (int x = 1; x <= n; ++x) { for (int y = 1; y <= n; ++y) { if (x == y) continue; q[x][y] = 1; } } } int hasEdge(int x, int y) { ++x; ++y; x = fi(x); y = fi(y); if (x == y) return 0; --q[x][y]; --q[y][x]; if (q[x][y]) return 0; p[x] = y; for (int i = 1; i <= n; ++i) { q[y][i] += q[x][i]; q[i][y] += q[x][i]; q[x][i] = 0; q[i][x] = 0; } return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...