Submission #1068474

#TimeUsernameProblemLanguageResultExecution timeMemory
1068474AbitoToy Train (IOI17_train)C++17
0 / 100
629 ms1392 KiB
#include "train.h" #include <bits/stdc++.h> //#define int long long #define pb push_back using namespace std; const int N=5005; int n; bool a[N],c[N],cyc[N],vis[N]; vector<int> adj[N]; bool checkcyc(int s){ queue<int> q; q.push(s); vis[s]=1; bool ok=0; while (!q.empty()){ int x=q.front(); //cout<<x<<' '; q.pop(); for (auto u:adj[x]){ if (c[u]) continue; if (vis[u]) ok=1; else{ vis[u]=1; q.push(u); } } }//cout<<endl; return ok; } bool getans(int s){ queue<int> q; q.push(s); vis[s]=1; bool ok=0; while (!q.empty()){ int x=q.front(); //cout<<x<<' '; q.pop(); ok|=cyc[x]; for (auto u:adj[x]){ if (vis[u]) continue; else{ vis[u]=1; q.push(u); } } }//cout<<endl; return ok; } std::vector<int32_t> who_wins(std::vector<int32_t> A, std::vector<int32_t> r, std::vector<int32_t> u, std::vector<int32_t> v) { n=A.size(); for (int i=1;i<=n;i++) a[i]=A[i-1],c[i]=r[i-1]; for (int i=0;i<u.size();i++){ adj[u[i]+1].pb(v[i]+1); } vector<int> ans(n); for (int i=1;i<=n;i++){ if (c[i]) continue; cyc[i]=checkcyc(i); memset(vis,0,sizeof(vis)); } for (int i=1;i<=n;i++){ if (!c[i]){ ans[i-1]=cyc[i]; continue; } ans[i-1]=getans(i); memset(vis,0,sizeof(vis)); } 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:53:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |  for (int i=0;i<u.size();i++){
      |               ~^~~~~~~~~
#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...