제출 #1227176

#제출 시각아이디문제언어결과실행 시간메모리
1227176brinton수천개의 섬 (IOI22_islands)C++20
0 / 100
1 ms580 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...