Submission #1130808

#TimeUsernameProblemLanguageResultExecution timeMemory
1130808nikolashamiTravelling Merchant (APIO17_merchant)C++20
0 / 100
53 ms2116 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int N=104,inf=(1ll<<62)-62; int og[N][N],tg[N][N],kg[N][N],bs[N][10*N][2],n,m,k; bool ss(){ for(int i=0;i<n;++i)if(kg[i][i]<=0)return 1; return 0; } void fw(int aa[N][N]){ for(int kk=0;kk<n;++kk){ for(int i=0;i<n;++i){ for(int j=0;j<n;++j) aa[i][j]=min(aa[i][j],aa[i][kk]+aa[kk][j]); } } } bool chk(int x){ for(int i=0;i<n;++i){ for(int j=0;j<n;++j){ if(og[i][j]>=inf)continue; int sc=og[i][j]*x; kg[i][j]=-(tg[i][j]-sc); } } fw(kg); return(ss()); } signed main(){ ios::sync_with_stdio(0); cin.tie(0); cin>>n>>m>>k; for(int i=0;i<n;++i) fill(og[i],og[i]+N,inf); for(int i=0;i<n;++i){ for(int j=0;j<k;++j) cin>>bs[i][j][0]>>bs[i][j][1]; } for(int i=0;i<n;++i){ for(int j=0;j<n;++j){ for(int kk=0;kk<k;++kk) if(bs[j][kk][1]!=-1&&bs[i][kk][0]!=-1) tg[i][j]=max(tg[i][j],bs[j][kk][1]-bs[i][kk][0]); } } for(int i=0,u,v,w;i<m;++i){ cin>>u>>v>>w; --u,--v; og[u][v]=w; } fw(og); int l=1,r=1e9,ans=-1; while(l<=r){ int mid=(l+r)/2; if(chk(mid)){ l=mid+1; ans=mid; }else r=mid-1; } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...