Submission #128480

#TimeUsernameProblemLanguageResultExecution timeMemory
128480kjp4155Game (IOI14_game)C++17
0 / 100
2 ms400 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

int pa[1600];
int sz[1600];
int N;
int find(int x){
    if( x == pa[x] ) return x;
    return pa[x] = find(pa[x]);
}
void uni(int a, int b){ 
    a = find(a); b = find(b);
    if( a == b ) return;
    sz[a] += sz[b];
    pa[b] = a;
}

void initialize(int n) {
    for(int i=0;i<n;i++) pa[i] = i, sz[i] = 1;
    N = n;
}

int hasEdge(int u, int v) {
    if( find(u) == find(v) ) return 1;
    if( sz[find(u)] + sz[find(v)] == N ) return 0;
    uni(u,v);
    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...