Submission #652848

#TimeUsernameProblemLanguageResultExecution timeMemory
652848LoboThousands Islands (IOI22_islands)C++17
0 / 100
6 ms9940 KiB
#include "islands.h" #include<bits/stdc++.h> using namespace std; #define pb push_back const int maxn = 2e5+10; int n, m, tin[maxn], low[maxn], mark[maxn], can[maxn], timer; vector<int> g[maxn], gt[maxn]; void dfsscc(int u) { tin[u] = ++timer; low[u] = tin[u]; for(auto v : g[u]) { if(mark[v] != 0 && mark[v] != mark[u]) continue; if(mark[v] != 0) { low[v] = min(low[v],tin[u]); } else { mark[v] = mark[u]; dfsscc(v); low[u] = min(low[u],low[v]); } } } variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> V) { n = N; m = M; for(int i = 0; i < m; i++) { g[U[i]].pb(V[i]); gt[V[i]].pb(U[i]); } int cntm = 0; for(int i = 0; i < m; i++) { if(!mark[i]) { mark[i] = ++cntm; dfsscc(i); } } for(int i = 0; i < m; i++) { can[i] = 0; if(low[i] < tin[i]) can[i] = 1; } return (can[0] == 1); if (N == 4) { return std::vector<int>({0, 1, 2, 4, 0, 3, 2, 1, 4, 3}); } return false; }
#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...