Submission #409821

#TimeUsernameProblemLanguageResultExecution timeMemory
409821dreezyToy Train (IOI17_train)C++17
0 / 100
2080 ms1400 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back vector<vector<int>> graph; vector<bool> vis; vector<int> a, r,w; bool dfs(int n, int energy, bool charger){ //cout << n << ", "<<energy <<", "<<charger<<endl; if(energy < 0 ) { vis[n] = false; return false; } if(vis[n]){ vis[n] = false; if(charger){ return true; } return false; } vis[n] = true; for(int adj : graph[n]){ if(r[adj]){ energy = n; charger = true; } bool res = dfs(adj, energy--,charger); if( a[adj] == 1 && res){ w[adj] = true; vis[adj] = false; return true; } if(a[adj] == 0 && !res){ w[adj] = false; vis[adj] = false; return false; } } return false; } vector<int> who_wins(vector<int> a_, vector<int> r_, vector<int> u , vector<int> v){ int n = a_.size(); int m = u.size(); graph.assign(n, {}); vis.assign(n, 0); w.assign(n, 0); a = a_; r=r_; for(int i =0; i< m;i++){ graph[u[i]].pb(v[i]); } for(int i=0; i<n;i++) dfs(i, n , r_[i]); return w; } /* int main(){ int n, m; cin >> n >>m; vector<int> a_(n), r_(n), u(m) ,v(m); for(int i = 0; i<n; i++){ cin >> a_[i]; } for(int i =0; i< n; i++) cin >> r_[i]; for(int i =0; i<m; i++) cin >> u[i]; for(int i =0; i<m;i++) cin >> v[i]; vector<int> w_ = who_wins(a_,r_,u,v); for(int i=0; i< n ;i++) cout << w_[i]<<endl; }*/
#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...