Submission #1359452

#TimeUsernameProblemLanguageResultExecution timeMemory
1359452opeleklanosThousands Islands (IOI22_islands)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include <vector>
#include <variant>
#include <algorithm>
using namespace std;

vector<vector<pair<int, int>>> adj;
vector<int> path;

vector<int> vis;
vector<int> tpsort;



void dfs(int st){
    vis[st] = 1;
    for(auto c : adj[st]) if(!vis[c.first]) dfs(c.first);

    tpsort.push_back(st);
}

variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> V){

    adj.assign(N, {});
    vis.assign(N, 0);

    for(int i = 0; i<M; i+=2){
        adj[U[i]].push_back({V[i], i});
    }

    dfs(0);

    reverse(tpsort.begin(), tpsort.end());
    vector<int> indx(N, -1);
    for(int i = 0; i<N; i++) indx[tpsort[i]] = i;

    for(int i = 0; i<N; i++){
        if(!vis[i]) continue;
        for(auto j : adj[i]){
            if(indx[i] > indx[j.first]) return (bool)0;
        }
    }

    return 1;
}

Compilation message (stderr)

islands.cpp: In function 'std::variant<bool, std::vector<int, std::allocator<int> > > find_journey(int, int, std::vector<int>, std::vector<int>)':
islands.cpp:44:12: error: could not convert '1' from 'int' to 'std::variant<bool, std::vector<int, std::allocator<int> > >'
   44 |     return 1;
      |            ^
      |            |
      |            int