Submission #794206

#TimeUsernameProblemLanguageResultExecution timeMemory
794206alvingogoToy Train (IOI17_train)C++14
11 / 100
2065 ms1204 KiB
#include "train.h" #include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define AquA cin.tie(0);ios_base::sync_with_stdio(0); #define fs first #define sc second #define p_q priority_queue using namespace std; typedef long long ll; const ll inf=1e9; void print(auto a){ return; for(auto h:a){ cerr << h << " "; } cerr << "\n"; } vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) { int n=a.size(),m=u.size(); vector<int> ans(n); vector<ll> dis(n),val(n); vector<ll> it(n); for(int i=0;i<n;i++){ if(r[i]==0){ val[i]=-1; } else{ val[i]=inf; } } for(int i=0;i<n;i++){ if(a[i]==0){ it[i]=100000*inf; } else{ it[i]=-100000*inf; } } for(int i=0;i<2*n;i++){ auto dz=it; for(int j=0;j<m;j++){ ll p=dis[v[j]]+val[v[j]]; if(a[u[j]]==1){ dz[u[j]]=max(dz[u[j]],p); } else{ dz[u[j]]=min(dz[u[j]],p); } } if(i==0){ fill(dis.begin(),dis.end(),inf); } for(int j=0;j<n;j++){ dis[j]=min(dis[j],dz[j]); } print(dis); } { auto dz=it; for(int j=0;j<m;j++){ ll p=dis[v[j]]+val[v[j]]; if(a[u[j]]==1){ dz[u[j]]=max(dz[u[j]],p); } else{ dz[u[j]]=min(dz[u[j]],p); } } for(int j=0;j<n;j++){ dz[j]=min(dz[j],dis[j]); } for(int i=0;i<n;i++){ if(dis[i]!=dz[i]){ dis[i]=-100000*inf; } } } for(int i=0;i<2*n;i++){ auto dz=it; for(int j=0;j<m;j++){ ll p=dis[v[j]]+val[v[j]]; if(a[u[j]]==1){ dz[u[j]]=max(dz[u[j]],p); } else{ dz[u[j]]=min(dz[u[j]],p); } } for(int j=0;j<n;j++){ dis[j]=min(dis[j],dz[j]); } print(dis); } { auto dz=it; for(int j=0;j<m;j++){ ll p=dis[v[j]]+val[v[j]]; if(a[u[j]]==1){ dz[u[j]]=max(dz[u[j]],p); } else{ dz[u[j]]=min(dz[u[j]],p); } } print(dz); for(int j=0;j<n;j++){ dz[j]=min(dz[j],dis[j]); } for(int i=0;i<n;i++){ ans[i]=(dis[i]>-50000*inf); } } return ans; }

Compilation message (stderr)

train.cpp:12:12: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   12 | void print(auto a){
      |            ^~~~
#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...