Submission #581318

#TimeUsernameProblemLanguageResultExecution timeMemory
581318JosiaGame (IOI14_game)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

#define int int64_t


int N;


struct chefNode {
    int chef;
    set<pair<int, int>> connections;
};



vector<chefNode> chefs;

void initUnionfind(int n) {
    chefs.clear();
    chefs.resize(n);
    for (int i = 0; i<n; i++) {
        chefNode x;
        x.chef = i;
        for (int j = 0; j<n; j++) {
            if (i == j) continue;
            x.connections.insert({i, j});
        }
        chefs[i] = x;
    }
}


int find(int x) {
    if (chefs[x].chef == x) return x;
    return chefs[x].chef = find(chefs[x].chef);
}


void unite(int a, int b) {
    a = find(a); b = find(b);
    if (a == b) return;

    chefs[a].chef = b;

    for (auto i: chefs[a].connections)
        chefs[b].connections.insert(i);

    chefs[a].connections.clear();

    set<pair<int, int>> newConnections;

    for (auto i: chefs[b].connections)
        if (find(i.first) != find(i.second)) newConnections.insert(i);

    chefs[b].connections = newConnections;
}



void initialize(int n) {
    N = n;
    initUnionfind(n);
}


int hasEdge(int u, int v) {
    u = find(u);
    v = find(v);

    if (u == v) return 0;   // return rand()%2;

    if (chefs[u].connections.size() == 1 || chefs[v].connections.size() == 1) {
        unite(u, v);
        return 1;
    }

    return 0;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccdzzihR.o: in function `main':
grader.cpp:(.text.startup+0x2a): undefined reference to `initialize(int)'
/usr/bin/ld: grader.cpp:(.text.startup+0x94): undefined reference to `hasEdge(int, int)'
collect2: error: ld returned 1 exit status