제출 #974645

#제출 시각아이디문제언어결과실행 시간메모리
974645lucri게임 (IOI14_game)C++17
15 / 100
2 ms4696 KiB
#ifndef _GAME_H
#define _GAME_H

bool e[1510][1510],mu[1510][1510];
int nr[1510],N;
void initialize(int n)
{
    N=n;
    for(int i=0;i<n;++i)
    {
        nr[i]=n-1;
        for(int j=0;j<n;++j)
            e[i][j]=mu[i][j]=false;
        e[i][i]=true;
    }
}
int hasEdge(int u, int v)
{
    if(mu[u][v]==false)
    {
        --nr[u];
        --nr[v];
        e[u][v]=e[v][u]=true;
        int nod;
        nod=u;
        while(nr[nod]==1)
        {
            for(int i=0;i<N;++i)
            {
                if(e[nod][i]==false)
                {
                    --nr[nod];
                    --nr[i];
                    e[nod][i]=e[i][nod]=true;
                    mu[nod][i]=mu[i][nod]=true;
                    nod=i;
                    break;
                }
            }
        }
        nod=v;
        while(nr[nod]==1)
        {
            for(int i=0;i<N;++i)
            {
                if(e[nod][i]==false)
                {
                    --nr[nod];
                    --nr[i];
                    e[nod][i]=e[i][nod]=true;
                    mu[nod][i]=mu[i][nod]=true;
                    nod=i;
                    break;
                }
            }
        }
    }
    return mu[u][v];
}

#endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...