Submission #425963

#TimeUsernameProblemLanguageResultExecution timeMemory
425963HazemToy Train (IOI17_train)C++14
0 / 100
1696 ms1452 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; const int N = 5e3+10; vector<int>adj[N],R,A; unordered_set<int>st; int cnt[N]; int n,m; bool vis[N],ispar[N]; bool dfs(int i,int pre){ if(vis[i]) return 0; ispar[i] = 1;vis[i] = 1; cnt[i] = cnt[pre]+R[i]; bool ret = 0; for(auto x:adj[i]){ ret |= dfs(x,i); if(!ispar[x]) continue; if(cnt[i]-cnt[x]+R[x]!=0)ret = 1; assert(cnt[i]-cnt[x]+R[x]>=0); } ispar[i] = 0; return ret; } vector<int>ans,cmp; std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { n = a.size(),m = u.size(); A = a;R = r; for(int i=0;i<m;i++) adj[u[i]].push_back(v[i]); for(int i=0;i<n;i++){ ans.push_back(!dfs(i,n+1)); memset(vis,0,sizeof(vis)); memset(cnt,0,sizeof(cnt)); } 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...