제출 #715061

#제출 시각아이디문제언어결과실행 시간메모리
715061Ahmed57게임 (IOI14_game)C++14
0 / 100
0 ms340 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3") using namespace std; int pr[1501],gs[1501],rem[1501]; int ed[1501][1501]; int findleader(int x){ if(pr[x]==x){ return x; } return pr[x] = findleader(pr[x]); } int N; void initialize(int n){ N = n; for(int i = 0;i<=n;i++)pr[i] = i,gs[i] = 1,rem[i] = 0; } int hasEdge(int a,int b){ a = findleader(a), b = findleader(b); if(gs[a]<gs[b])swap(a,b); if((gs[a]*(N-1))-gs[a]*(gs[a]-1)-1>(gs[a]*(N-1))-rem[a]-ed[a][a]&&(gs[b]*N)-gs[b]*(gs[b]-1)-1>(gs[b]*(N-1))-rem[b]-ed[b][b]){ ed[a][b]++; ed[b][a]++; rem[a]++;rem[b]++; return 0; } gs[a]+=gs[b]; rem[a]+=rem[b]; pr[b]=a; for(int i = 0;i<N;i++){ ed[a][i]+=ed[b][i]; ed[i][a]+=ed[i][b]; } return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...