Submission #733185

#TimeUsernameProblemLanguageResultExecution timeMemory
733185t6twotwoToy Train (IOI17_train)C++17
0 / 100
2073 ms1140 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> pos(N, -1), c{-1}; int t = 0; auto dfs = [&](auto dfs, int x) -> int { pos[x] = t++; if (R[x]) { c.push_back(pos[x]); } for (int y : adj[x]) { if (pos[y] == -1) { if (dfs(dfs, y) == A[x]) { return A[x]; } } else { if (A[x] == (pos[y] <= c.back())) { return A[x]; } } } pos[x] = -1; t--; if (R[x]) { c.pop_back(); } return !A[x]; }; 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...