Submission #99788

#TimeUsernameProblemLanguageResultExecution timeMemory
99788MvCToy Train (IOI17_train)C++11
0 / 100
1857 ms1280 KiB
#pragma GCC optimize("O3") #include "train.h" #include<bits/stdc++.h> #define rc(x) return cout<<x<<endl,0 #define pb push_back #define in insert #define er erase #define fd find #define fr first #define sc second typedef long long ll; typedef long double ld; const ll INF=0x3f3f3f3f3f3f3f3f; const ll llinf=(1LL<<62); const int inf=(1<<30); const int nmax=5e3+50; const int mod=1e9+7; using namespace std; int n,i,m,ans,viz[nmax],x,y,a[nmax],r[nmax],nr; vector<int>v[nmax]; void dfs(int x) { if(!viz[x])viz[x]=1; else if(viz[x]==2)return; else if(viz[x]==1) { if(nr>0)ans=1; return; } nr+=r[x]; for(int i=0;i<v[x].size();i++) { dfs(v[x][i]); } nr-=r[x]; viz[x]=2; } vector<int> who_wins(vector<int> A,vector<int> R,vector<int> X,vector<int> Y) { n=(int)A.size(); m=(int)X.size(); for(i=1;i<=n;i++)a[i]=A[i-1]; for(i=1;i<=n;i++)r[i]=R[i-1]; for(i=1;i<=m;i++) { x=X[i-1],y=Y[i-1]; x++,y++; v[x].pb(y); } vector<int>rs(n); for(i=1;i<=n;i++) { memset(viz,0,sizeof(viz)); ans=nr=0; dfs(i); rs[i-1]=ans; } return rs; }

Compilation message (stderr)

train.cpp: In function 'void dfs(int)':
train.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v[x].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...