# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1207361 | candi_ositos | Game (IOI14_game) | C++20 | 0 ms | 0 KiB |
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
vector <int> p;
vector <set<int> > jevil;
int N;
void initialize(int n)
{
jevil.resize(n);
N=n;
p.resize(n);
for(int i=0; i<n; ++i)
{
p[i]=i;
for(int j=0; j<n; ++j)
{
jevil[i].insert(j);
}
jevil[i].pop(i);
}
}
int fgp(int a)
{
if(p[a]==a)
{
return a;
}
return p[a]=fgp(p[a]);
}
int hasEdge(int u, int v)
{
if(fgp(u)==fgp(v))
{
return 1;
}
if(jevil[u].count(v)<=1 && (jevil[fgp(u)].size()<=1 || jevil[fgp(v)].size()<=1))
{
p[fgp(u)]=fgp(v);
return 1;
}
jevil[u].pop(v);
jevil[v].pop(u);
return 0;
}