Submission #416661

#TimeUsernameProblemLanguageResultExecution timeMemory
416661yanireToy Train (IOI17_train)C++11
5 / 100
2050 ms1404 KiB
#include <bits/stdc++.h> using namespace std; #include "train.h" #define fin(i,s,n) for(auto i = s; i < n; ++i) #define fine(i,s,n) for(auto i = s; i <= n; ++i) #define pb push_back #define eb emplace_back #define x first #define y second #define all(x) (x).begin(),(x).end() #define chkmin(a,b) a = min(a,b) #define chkmax(a,b) a = max(a,b) using stdvec = vector<int>; using ii = pair<int,int>; using vi = vector<int>; using vvi = vector<vi>; using vii = vector<ii>; #define sz(a) int((a).size()) const int maxn = 5005; vi g[maxn]; bool vis[maxn]; int c[maxn],p[maxn]; int loc[maxn]; bool dfs(int u, int l = 0,int lstC = -1) { if(loc[u]!=-1) return loc[u] <= lstC; loc[u] = l++; if(c[u]) lstC = loc[u]; for(int v : g[u]) { bool RES = dfs(v,l,lstC); if(RES&&p[u]) return 1; if(!(RES||p[u])) return 0; } loc[u] = -1; return !p[u]; } vi who_wins(vi a, vi r, vi u, vi v) { int n = a.size(),m = u.size(); vi lp(n,0),nxt(n,0); fin(i,0,m) { g[u[i]].pb(v[i]); } fin(i,0,n) p[i]=a[i],c[i]=r[i]; vi res(n); fin(i,0,n) { fin(j,0,n) loc[j] = -1; 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...