#include <bits/stdc++.h>
#include "islands.h"
// #include "grader.cpp"
using namespace std;
const int N = 2e5 + 10;
int n, m, vis[N], bad[N], good[N];
vector<int> g[N], V;
vector<int> seen;
bool dfs(int v){
if (good[v] or v == 0) return 1;
if (bad[v]) return 0;
seen.push_back(v);
vis[v] = 1;
bool ans = 0;
for (int e : g[v]){
int u = V[e];
if (vis[u] == 2) continue;
if (vis[u] == 1) ans = 1;
else ans |= dfs(u);
}
vis[v] = 2;
if (ans) good[v] = 1;
else bad[v] = 1;
return ans;
}
variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> vv) {
V = vv;
n = N, m = M;
for (int i = 0; i < m; i ++){
g[U[i]].push_back(i);
}
int ans = 0;
for (int e : g[0]){
memset(vis, 0, sizeof vis);
ans += dfs(V[e]);
if (ans >= 2) return true;
}
return false;
}
# | 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... |