#include "islands.h"
#include <bits/stdc++.h>
using namespace std;
variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> V) {
vector<vector<pair<int,int>>> edges(N);
for(int i = 0;i < M;i++){
edges[U[i]].push_back({V[i],i});
}
if(edges[0].size() < 2) return false;
vector<int> ans;
vector<bool> vis(N,false);
auto co = [](int id){
if(id%2 == 0) return id+1;
else return id-1;
};
function<void(int)> dfs = [&](int cur){
vis[cur] = true;
if(cur == 0){
vis[edges[cur][0].first] = true;
}
for(auto [nxt,id]:edges[cur]){
if(vis[nxt]) continue;
ans.push_back(id);
dfs(nxt);
ans.push_back(co(id));
}
if(cur == 0){
auto [nxt,id] = edges[cur][0];
ans.push_back(id);
dfs(nxt);
ans.push_back(co(id));
}
};
dfs(0);
for(int i = 0;i < N;i++) if(!vis[i]) return false;
int csz = ans.size();
for(int i = 0;i < csz;i++) ans.push_back(co(ans[i]));
return ans;
// return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |