Submission #428662

#TimeUsernameProblemLanguageResultExecution timeMemory
428662vanicToy Train (IOI17_train)C++14
11 / 100
527 ms1660 KiB
#include "train.h" #include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <cstring> using namespace std; const int maxn=5005; int n, m; vector < int > ms[maxn]; vector < int > rev[maxn]; int charge[maxn]; int tko[maxn]; bool bio[maxn]; vector < int > sol; int poc; int dfs(int x){ if(bio[x] && x==poc){ return 1; } if(bio[x] || charge[x]){ return 0; } bio[x]=1; for(int i=0; i<(int)ms[x].size(); i++){ if(dfs(ms[x][i])){ return 1; } } return 0; } void nazad(int x){ if(!sol[x]){ return; } sol[x]=0; for(int i=0; i<(int)rev[x].size(); i++){ nazad(rev[x][i]); } } 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]); rev[v[i]].push_back(u[i]); } sol.resize(n, 1); for(int i=0; i<n; i++){ if(!charge[i]){ poc=i; if(dfs(i)){ nazad(i); } memset(bio, 0, sizeof(bio)); } } 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...