# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
583915 | 2022-06-26T13:35:21 Z | PiejanVDC | Toy Train (IOI17_train) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "train.h" using namespace std; vector<int>tim; vector<int>s,a,r; vector<int>adj[15]; vector<int>ans; int t = 1; bool dfs(int u) { if(ans[u]) return 1; if(tim[u]) { if(s.back() >= tim[u]) return 1; return 0; } tim[u] = t++; if(r[u]) s.push_back(t-1); bool ok; if(a[u]) { ok = 0; for(auto z : adj[u]) { ok |= dfs(z); } } else { ok = 1; for(auto z : adj[u]) { ok &= dfs(z); } } if(r[u]) s.pop_back(); tim[u] = 0; return ok; }