Submission #422202

#TimeUsernameProblemLanguageResultExecution timeMemory
422202AntekbToy Train (IOI17_train)C++14
28 / 100
238 ms1976 KiB
#include "train.h" #include<bits/stdc++.h> #define st first #define nd second #define pb(x) push_back(x) using namespace std; const int N=5005; vector<int> E[N], rE[N], E2[N], rE2[N]; int d[N]; int wsk=0; int czy[N][N], dobre[N], petla[N]; int vis[N]; int usun[N]; std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> uu, std::vector<int> vv) { int n=a.size(), m=uu.size(); std::vector<int> res(n); for(int i=0; i<m; i++){ //cout<<uu[i]<<" "<<vv[i]<<"\n"; E[uu[i]].pb(vv[i]); rE[vv[i]].pb(uu[i]); } //int wsk=n-1; int ile=0; while(true){ vector<int> V; for(int j=0; j<n; j++)if(!usun[j])d[j]=E[j].size(), vis[j]=0; for(int j=0; j<n; j++)if(r[j] && !usun[j])V.pb(j);//cout<<j; //cout<<"\n"; for(int j=0; j<V.size(); j++){ int v=V[j]; for(int u:rE[v]){ if(a[u] && !vis[u] && !usun[u]){ vis[u]=1; if(!r[u])V.pb(u); } if(!a[u] && --d[u]==0 && !vis[u] && !usun[u]){ vis[u]=1; if(!r[u])V.pb(u); } } } //for(int i:V)cout<<i<<" "; //cout<<" q\n"; if(V.size()==n-ile)break; V.clear(); for(int j=0; j<n; j++){ dobre[j]=0; if(!vis[j] && !usun[j]){ dobre[j]=1; V.pb(j); } else{ vis[j]=0; d[j]=E[j].size(); } } for(int j=0; j<V.size(); j++){ int v=V[j]; for(int u:rE[v]){ if(!a[u] && !vis[u] && !usun[u]){ vis[u]=1; if(!dobre[u])V.pb(u); } if(a[u] && --d[u]==0 && !vis[u] && !usun[u]){ vis[u]=1; if(!dobre[u])V.pb(u); } } } for(int i:V)usun[i]=1; //for(int i:V)cout<<i<<" "; //cout<<"\n"; ile=0; for(int i=0; i<n; i++)ile+=usun[i]; } for(int i=0; i<n; i++)res[i]=!usun[i]; return res; }

Compilation message (stderr)

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:29:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |    for(int j=0; j<V.size(); j++){
      |                 ~^~~~~~~~~
train.cpp:44:15: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   44 |    if(V.size()==n-ile)break;
      |       ~~~~~~~~^~~~~~~
train.cpp:57:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |    for(int j=0; j<V.size(); j++){
      |                 ~^~~~~~~~~
#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...