#include "game.h"
#include <bits/stdc++.h>
using namespace std;
struct DSU{
int n; vector<int> a;
vector<vector<int>> nbtc;
DSU(int N){
n=N;
a.assign(N, -1);
nbtc.assign(N, vector<int>(N, 0));
}
int get(int x){return (a[x]<0 ? x:a[x]=get(a[x]));}
bool connect(int u, int v){
int x = get(u);
int y = get(v);
if(a[x]>a[y])swap(x, y);
if(x==y)return false;
int tts=a[x]*a[y];
if(nbtc[x][y]<tts-1){
nbtc[x][y]++;
nbtc[y][x]++;
return false;
}
else{
a[x]+=a[y];
a[y]=x;
for(int i = 0;i<n;i++){
nbtc[x][i]+=nbtc[y][i];
nbtc[i][x]+=nbtc[i][y];
}
return true;
}
}
};
DSU m(1501);
void initialize(int n) {;
}
int hasEdge(int u, int v) {
return (int)(m.connect(u, v));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |