Submission #596135

#TimeUsernameProblemLanguageResultExecution timeMemory
596135kshitij_sodaniToy Train (IOI17_train)C++14
33 / 100
2074 ms1108 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define a first #define b second #define pb push_back #define endl '\n' #include "train.h" vector<int> adj[5001]; std::vector<int> who_wins(std::vector<int> aa, std::vector<int> bb, std::vector<int> u, std::vector<int> v) { int n=aa.size(); for(int i=0;i<u.size();i++){ adj[u[i]].pb(v[i]); } int ind=-1; vector<int> ss; for(int i=0;i<n;i++){ if(bb[i]==1){ ind=i; ss.pb(ind); } } vector<int> cc=bb; while(true){ vector<int> ss; for(int i=0;i<n;i++){ if(cc[i]==1){ ind=i; ss.pb(ind); } } bb=cc; while(true){ int st=1; for(int i=0;i<n;i++){ if(bb[i]==0){ int su=0; for(auto j:adj[i]){ su+=bb[j]; } if(aa[i]==1){ if(su>0){ bb[i]=1; st=0; break; } } else{ if(su==adj[i].size()){ bb[i]=1; st=0; break; } } } } if(st==1){ break; } } int st=1; for(auto j:ss){ int su=0; for(auto jj:adj[j]){ su+=bb[jj]; } if(aa[j]==1){ if(su==0){ st=0; cc[j]=0; break; } } else{ if(su<adj[j].size()){ st=0; cc[j]=0; cc[j]=0; } } } if(st==1){ break; } } return bb; /*for(auto j:adj[ind]){ if(bb[j]==1){ for(int i=0;i<n;i++){ if(bb[i]==1){ ans[i]=1; } } break; } } return ans;*/ }

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:14:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |  for(int i=0;i<u.size();i++){
      |              ~^~~~~~~~~
train.cpp:52:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |       if(su==adj[i].size()){
      |          ~~^~~~~~~~~~~~~~~
train.cpp:78:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |     if(su<adj[j].size()){
      |        ~~^~~~~~~~~~~~~~
#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...