Submission #513726

#TimeUsernameProblemLanguageResultExecution timeMemory
513726status_codingGame (IOI14_game)C++14
100 / 100
467 ms22216 KiB
#include "game.h" #include <bits/stdc++.h> int n; int par[2005]; int nr[2005][2005]; int dsu_par(int x) { if(par[x]!=x) par[x]=dsu_par(par[x]); return par[x]; } void dsu_merge(int x, int y) { par[y]=x; for(int i=1;i<=n;i++) { nr[x][i] += nr[y][i]; nr[i][x] = nr[x][i]; } } void initialize(int N) { n = N; for(int i=1;i<=n;i++) { par[i]=i; for(int j=1;j<=n;j++) nr[i][j]=1; } } int hasEdge(int x, int y) { x = dsu_par(x+1); y = dsu_par(y+1); if(x == y) return true; if(nr[x][y] == 1) { dsu_merge(x, y); return true; } nr[x][y]--; nr[y][x]--; return false; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...