Submission #428573

#TimeUsernameProblemLanguageResultExecution timeMemory
428573vanicToy Train (IOI17_train)C++14
5 / 100
11 ms1324 KiB
#include "train.h" #include <iostream> #include <vector> #include <algorithm> #include <cmath> using namespace std; const int maxn=5005; int n, m; vector < int > ms[maxn]; int charge[maxn]; bool tko[maxn]; bool bio[maxn]; vector < int > sol; int dfs(int x){ if(bio[x]){ return sol[x]; } bio[x]=1; if(find(ms[x].begin(), ms[x].end(), x)!=ms[x].end()){ if(tko[x]==charge[x]){ return sol[x]=charge[x]; } if(ms[x].size()==1){ return sol[x]=charge[x]; } if(ms[x][0]==x){ swap(ms[x][0], ms[x][1]); } } return sol[x]=dfs(ms[x][0]); } vector < int > who_wins(vector < int > a, vector < int > r, vector < int > u, vector < int > v) { n=a.size(); m=u.size(); for(int i=0; i<n; i++){ tko[i]=a[i]; charge[i]=r[i]; } for(int i=0; i<m; i++){ ms[u[i]].push_back(v[i]); } sol.resize(n, 0); for(int i=0; i<n; i++){ if(!bio[i]){ dfs(i); } } return sol; }
#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...