제출 #513503

#제출 시각아이디문제언어결과실행 시간메모리
513503status_coding게임 (IOI14_game)C++14
0 / 100
1 ms300 KiB
#include "game.h"
#include <bits/stdc++.h>

int par[2005];
int nr[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;
    nr[x]+=nr[y]-2;
}

void initialize(int n)
{
    for(int i=1;i<=n;i++)
    {
        par[i]=i;
        nr[i]=n-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]==1 || nr[y]==1)
    {
        dsu_merge(x, y);
        return true;
    }

    nr[x]--;
    nr[y]--;
    return false;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...