Submission #1324602

#TimeUsernameProblemLanguageResultExecution timeMemory
1324602eri16수천개의 섬 (IOI22_islands)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 100001;

int out_deg[MAXN];
vector<int> in_adj[MAXN];
vector<int> out_adj[MAXN];
char deleted[MAXN];
queue<int> events;

void delete_vertex(int x){
    if (deleted[x]) return;
    deleted[x]=1;
    for (int p : in_adj[x]) {
        out_deg[p]--;
        if (out_deg[p]==0) events.push(p);
    }
}

int extend_from(int v){
    int last_next=-1;
    for (int to : out_adj[v]){
        if (deleted[to]) continue;
        last_next=to;
    }
    delete_vertex(v);
    return last_next;
}

pair<bool, vector<int>> find_journey_exists(int n, int m, const vector<int>& U, const vector<int>& V) {
    vector <int> vvv;
    for (int i=0; i<n; i++){
        out_deg[i] = 0;
        in_adj[i].clear();
        out_adj[i].clear();
        deleted[i] = 0;
    }
    while (!events.empty()) events.pop();

    for (int i=0; i<m; i++){
        out_adj[U[i]].push_back(V[i]);
        out_deg[U[i]]++;
        in_adj[V[i]].push_back(U[i]);
    }

    for (int i=0; i<n; i++)
        if (out_deg[i]==0) events.push(i);

    int current=0;
    
    while (out_deg[current]<=1){
        int next=extend_from(current);
        if (next==-1)return {false,vvv};
        current=next;
    }

    while (!events.empty()){
        int x=events.front();
        events.pop();
        if (deleted[x]) continue;
        delete_vertex(x);

        while (out_deg[current]<=1){
            int next=extend_from(current);
            if (next==-1) return {false,vvv};
            current=next;
        }
    }

    return {true,vvv};
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccTwMj57.o: in function `main':
grader.cpp:(.text.startup+0x21c): undefined reference to `find_journey(int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status