Submission #295169

#TimeUsernameProblemLanguageResultExecution timeMemory
295169williamMBDKToy Train (IOI17_train)C++11
5 / 100
183 ms262148 KiB
#include<bits/stdc++.h> using namespace std; #include "train.h" vector<vector<int>> adj; vector<bool> v; vector<int> res; vector<int> a, r; bool dfs(int node){ if(res[node] != -1) return res[node]; bool b = 0; for(auto e : adj[node]){ if(e == node) b = 1; else{ res[node] = dfs(e); } } if(res[node] == -1) res[node] = r[node]; else if(b && a[node]){ if(r[node]) res[node] = 1; }else if(b && !a[node]){ if(!r[node]) res[node] = 0; } return res[node]; } std::vector<int> who_wins(std::vector<int> ta, std::vector<int> tr, std::vector<int> u, std::vector<int> tv) { int N = ta.size(); int M = u.size(); adj = vector<vector<int>> (N); res = vector<int> (N, -1); a = ta; r = tr; for(int i = 0; i < M; i++) { adj[u[i]].push_back(tv[i]); } for(int i = 0; i < N; i++){ res[i] = dfs(i); } return res; }
#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...