Submission #1181271

#TimeUsernameProblemLanguageResultExecution timeMemory
1181271KerimGame (IOI14_game)C++17
0 / 100
0 ms328 KiB
#include "game.h"
#include <algorithm>
using namespace std;
const int N = 1502;
int ata[N], C;
int tap(int x){
    if (ata[x] == x)
        return ata[x];
    return ata[x] = tap(ata[x]);
}
void merge(int x, int y){
    if ((x=tap(x)) == (y=tap(y)))
        return;
    ata[y] = x;
}
bool is_connected(int x, int y){
    return (tap(x) == tap(y));
}
void initialize(int n) {
    C = n;
    for (int i = 0; i < n; i++)
        ata[i] = i;
}
int hasEdge(int u, int v) {
    if (!is_connected(u, v)){
        if (C == 2)
            return 0;
        else{
            merge(u, v);
            C -= 1;
            return 1;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...