제출 #782152

#제출 시각아이디문제언어결과실행 시간메모리
782152Andrey게임 (IOI14_game)C++14
0 / 100
1 ms360 KiB
#include "game.h" #include<bits/stdc++.h> using namespace std; int br[1501][1501]; vector<int> dsu(1501); int k; int calc(int a) { while(dsu[a] != a) { a = dsu[a]; } return a; } bool edge(int a, int b) { int c = calc(a),d = calc(b); dsu[d] = c; if(c != d) { return true; } else { return false; } } void initialize(int n) { k = n; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { br[i][j] = 1; } } for(int i = 1; i <= n; i++) { dsu[i] = i; } } int hasEdge(int u, int v) { int ans,a = calc(u),b = calc(v); if(br[calc(u)][calc(v)] == 1) { ans = 1; edge(a,b); for(int i = 1; i <= k; i++) { br[a][i] = br[a][i]+br[b][i]; br[i][a] = br[a][i]; } } else { ans = 0; br[a][b]--; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...