Submission #1239253

#TimeUsernameProblemLanguageResultExecution timeMemory
1239253moondarksideToy Train (IOI17_train)C++20
15 / 100
2096 ms1096 KiB
#include<bits/stdc++.h> using namespace std; std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { vector<vector<int>> Next(a.size()); int n=a.size(); for(int i=0; i<u.size(); i++) { Next[u[i]].push_back(v[i]); } std::vector<int> rC=r; for(int sur=0;sur<n;sur++){ vector<int> prC=rC; rC=r; bool cambio=true; for(int ronda=0; ronda<n && cambio; ronda++) { cambio=false; for(int i=0; i<n; i++) { if(rC[i]!=1) { if(a[i]==1) { for(int j=0; j<Next[i].size(); j++) { if(rC[Next[i][j]]==1) { rC[i]=1; cambio=true; } } } else { int ns=1; for(int j=0; j<Next[i].size(); j++) { ns=ns*rC[Next[i][j]]; } rC[i]=ns; if(ns==1){ cambio=true; } } } } } cambio=true; for(int ronda=0; ronda<n && cambio; ronda++) { cambio=false; for(int i=0; i<n; i++) { if(rC[i]==1) { if(a[i]==0) { for(int j=0; j<Next[i].size(); j++) { if(rC[Next[i][j]]==0) { rC[i]=0; cambio=true; } } } else { int ns=1; for(int j=0; j<Next[i].size(); j++) { ns=ns*(1-rC[Next[i][j]]); } rC[i]=1-ns; if(ns==1){ cambio=true; } } } } } bool change=true; for(int i=0;i<n;i++){ r[i]=r[i] && rC[i]; if(prC[i]==rC[i]){ change=false; } } if(change){ vector<int> Sol; for(int i=0;i<n;i++){ Sol.push_back(rC[i]); } return Sol; } } vector<int> Sol; for(int i=0;i<n;i++){ Sol.push_back(rC[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...