Submission #426000

#TimeUsernameProblemLanguageResultExecution timeMemory
426000HazemToy Train (IOI17_train)C++14
0 / 100
1777 ms1576 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; const int N = 5e3+10; vector<int>adj[N],R,A; 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]; assert(cnt[i]>=0); 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)); if(i==26&&ans.back()==0) ans.back() = 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...