Submission #1207985

#TimeUsernameProblemLanguageResultExecution timeMemory
1207985HappyCapybaraThousands Islands (IOI22_islands)C++20
0 / 100
1108 ms527916 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<int>> g(N); for (int i=0; i<M; i+=2){ g[U[i]].push_back(i); g[V[i]].push_back(i+1); } vector<int> p1, p2; int cur = 0, prev = 0; while (true){ if (g[cur].size() == 0 || (g[cur].size() == 1 && cur != 0)) return false; if (g[cur].size() == 3 || (g[cur].size() == 2 && cur == 0)){ break; } int next = U[g[cur][0]]+V[g[cur][0]]-cur; if (next == prev){ next = U[g[cur][1]]+V[g[cur][1]]-cur; p1.push_back(g[cur][1]+(next == U[g[cur][1]])); } else p1.push_back(g[cur][0]+(next == U[g[cur][0]])); prev = cur; cur = next; } vector<int> res; for (int x : p1) res.push_back(x); for (int x : p2) res.push_back(x); reverse(p1.begin(), p1.end()); for (int x : p1) res.push_back(x); return res; }
#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...