Submission #733686

#TimeUsernameProblemLanguageResultExecution timeMemory
733686t6twotwoToy Train (IOI17_train)C++17
15 / 100
2064 ms1364 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; vector<int> who_wins(vector<int> A, vector<int> R, vector<int> U, vector<int> V) { int N = A.size(); int M = U.size(); vector<vector<int>> adj(N); for (int i = 0; i < M; i++) { adj[U[i]].push_back(V[i]); } vector<int> ans(N); for (int i = 0; i < N; i++) { vector<int> p; vector<bool> vis(N); auto dfs = [&](auto dfs, int x) -> int { p.push_back(x); vis[x] = 1; int f = 1; for (int y : adj[x]) { if (!vis[y]) { if (dfs(dfs, y) == A[x]) { f = 0; } } else { int cyc = 0; for (int i = p.size() - 1; i >= 0; i--) { cyc |= R[p[i]]; if (p[i] == y) { break; } } if (A[x] == cyc) { f = 0; } } } vis[x] = 0; p.pop_back(); return A[x] ^ f; }; ans[i] = dfs(dfs, i); } return ans; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...