# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1165089 | boclobanchat | Game (IOI14_game) | C++20 | 0 ms | 328 KiB |
#include"game.h"
#include<bits/stdc++.h>
using namespace std;
int dsu[1666],F[1666][1666],cnt[1666];
int root(int i)
{
if(!dsu[i]) return i;
return dsu[i]=root(dsu[i]);
}
void merge(int i,int j)
{
if((i=root(i))==(j=root(j))) return ;
dsu[j]=i,cnt[i]+=cnt[j];
}
void initialize(int n)
{
for(int i=1;i<=n;i++) cnt[i]=1;
return ;
}
int hasEdge(int u,int v)
{
u=root(++u),v=root(++v);
if(u>v) swap(u,v);
if(++F[u][v]==cnt[u]*cnt[v])
{
merge(u,v);
return 1;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |