제출 #406726

#제출 시각아이디문제언어결과실행 시간메모리
406726daniel920712Toy Train (IOI17_train)C++14
11 / 100
454 ms25524 KiB
#include "train.h" using namespace std; vector < int > Next[5005],Next2[5005],ans; bool have1[5005][5005]; bool can[5005]; bool have2[5005]; bool F(int st,int here,int deg) { int t=0; if(here==st&&deg) return 1; if(have1[st][here]) return 0; have1[st][here]=1; for(auto i:Next[here]) { t=F(st,i,deg+1); can[here]=can[here]||t; if(t) break; } return t; } void F2(int here) { if(have2[here]) return; have2[here]=1; for(auto i:Next2[here]) F2(i); } vector < int > who_wins(vector < int > who, vector < int > power, vector < int > u, vector < int > v) { int N=who.size(),M=u.size(),i; for(i=0;i<N;i++) ans.push_back(0); for(i=0;i<M;i++) Next[u[i]].push_back(v[i]); for(i=0;i<M;i++) Next2[v[i]].push_back(u[i]); for(i=0;i<N;i++) if(power[i]) F(i,i,0); for(i=0;i<N;i++) if(can[i]) F2(i); for(i=0;i<N;i++) if(have2[i]) ans[i]=1; 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...