Submission #72867

#TimeUsernameProblemLanguageResultExecution timeMemory
72867Sa1378Toy Train (IOI17_train)C++17
0 / 100
15 ms1452 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; #define N ((int)100) int n,m,arr[N]; bool e[N][N],mark[N]; vector <int> now; bool solve(vector <int> &a,vector <int> &r) { int x=now.back(); bool flg=0; for(int i=(int)now.size()-1;i>=0;i--) { flg|=r[now[i]]; // cout<<flg<<" "<<now[i]<<" "<<e[x][now[i]]<<"\n"; if(e[x][now[i]] && flg==a[x])return a[x]; } srand(time(NULL)); random_shuffle(arr,arr+n); for(int j=0;j<n;j++) { int i=arr[j]; if(mark[i] || !e[x][i])continue; now.push_back(i);mark[i]=1; if(solve(a,r)==a[x]) { now.pop_back();mark[i]=0; return a[x]; } now.pop_back();mark[i]=0; } return 1-a[x]; } 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++)arr[i]=i; for(int i=0;i<m;i++)e[u[i]][v[i]]=1; vector <int> res; for(int i=0;i<n;i++) { now.push_back(i);mark[i]=1; res.push_back(solve(a,r)); now.pop_back();mark[i]=0; } 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...