제출 #263911

#제출 시각아이디문제언어결과실행 시간메모리
263911daniel920712게임 (IOI14_game)C++14
42 / 100
1075 ms764 KiB
#include "game.h"
#include <vector>
using namespace std;
int con=0,a,b,ok=0;
int Father[1505];
int sz[1505];
vector < pair < int , int > > all;
int Find(int here)
{
    if(Father[here]==here) return here;
    Father[here]=Find(Father[here]);
    return Father[here];
}
void initialize(int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        Father[i]=i;
        sz[i]=1;
    }
    return ;
}

int hasEdge(int u, int v)
{
    int con=0;
    
    if(Find(u)==Find(v)) return 0;
    all.push_back(make_pair(u,v));
    for(auto i:all)
    {
        if(Find(i.first)==Find(u)&&Find(i.second)==Find(v)) con++;
        if(Find(i.first)==Find(v)&&Find(i.second)==Find(u)) con++;
    }
    if(con==sz[Find(u)]*sz[Find(v)])
    {
        sz[Find(u)]+=sz[Find(v)];
        Father[Find(v)]=Find(u);
        return 1;
    }
    return 0;


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