Submission #1304073

#TimeUsernameProblemLanguageResultExecution timeMemory
1304073activedeltorreGame (IOI14_game)C++20
100 / 100
208 ms15864 KiB
#include "game.h"
using namespace std;
int cnt=0,n;
int per[1505][1505];
int sef[1505];
int find(int a)
{
    if(sef[a]==a)
    {
        return a;
    }
    return sef[a]=find(sef[a]);
}
void initialize(int N) {
    n=N;
    for(int i=0;i<n;i++)
    {
        sef[i]=i;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(i!=j)
            {
                per[i][j]=1;
            }
        }
    }
}

int hasEdge(int u, int v) {
    u=find(u);
    v=find(v);
    if(per[u][v]==1)
    {
        per[u][v]--;
        per[v][u]--;
        for(int i=0;i<n;i++)
        {
            per[u][i]=per[u][i]+per[v][i];
            per[i][u]=per[u][i];
        }
        sef[v]=u;
        return 1;
    }
    else
    {
        per[u][v]--;
        per[v][u]--;
        return 0;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...