Submission #1183766

#TimeUsernameProblemLanguageResultExecution timeMemory
1183766gygThousands Islands (IOI22_islands)C++20
8.40 / 100
59 ms12792 KiB
#include "islands.h" #include <bits/stdc++.h> using namespace std; #define arr array #define vec vector #define var variant #define pii pair<int, int> #define fir first #define sec second const int N = 1e5 + 5; int n, m; arr<vec<int>, N> adj; map<pii, int> id; vec<int> stk, cyc; arr<int, N> vs; bool dfs(int u = 1) { vs[u] = 1, stk.push_back(u); for (int v : adj[u]) { if (vs[v] == 2) continue; if (vs[v] == 0) { if (dfs(v)) return true; continue; } while (true) { int w = stk.back(); stk.pop_back(); cyc.push_back(w); if (w == v) break; } reverse(cyc.begin(), cyc.end()); return true; } vs[u] = 2, stk.pop_back(); return false; } var<bool, vec<int>> find_journey(int _n, int _m, vec<int> _u, vec<int> _v) { n = _n, m = _m; for (int i = 0; i < m; i++) { int u = _u[i] + 1, v = _v[i] + 1; adj[u].push_back(v); id[{u, v}] = i; } if (!dfs()) return false; return true; }
#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...