제출 #1146824

#제출 시각아이디문제언어결과실행 시간메모리
1146824BlockOG게임 (IOI14_game)C++20
15 / 100
1 ms328 KiB
// mrrrow mnyaa ;3c
// go play vivid/stasis! it's a really awesome free game on steam

int parent[1500];
int used[1500];
int n, calls_left, components;

void initialize(int N) {
    n = N;
    calls_left = n * (n - 1) / 2 + 1;
    components = n;
    for (int i = 0; i < n; i++) parent[i] = i, used[i] = n - 1;
}

int get(int i) {
    if (parent[i] == i) return i;
    return parent[i] = get(parent[i]);
}

void merge(int a, int b) {
    a = get(a), b = get(b);
    if (a == b) return;

    parent[a] = b;
    components--;
}

int hasEdge(int u, int v) {
    calls_left--;
    used[u]--, used[v]--;
    if (used[u] == 0 || used[v] == 0 || components > calls_left) {
        merge(u, v);
        return true;
    }
    return false;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...