Submission #1166425

#TimeUsernameProblemLanguageResultExecution timeMemory
1166425mariusharabariTravelling Merchant (APIO17_merchant)C++17
0 / 100
57 ms6208 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const ll INF=LLONG_MAX/2; int n, m, x; ll b[101][1001], s[101][1001], g[101][101], g2[101][101], p[101][101]; void floyd_warshall(ll v[101][101]){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) v[j][k]=min(v[j][k],v[j][i]+v[i][k]); } int main(){ iostream::sync_with_stdio(false); cin.tie(0); cin>>n>>m>>x; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) g[i][j]=INF; for(int j=1;j<=x;j++) cin>>b[i][j]>>s[i][j]; } int u, v, c; for(int i=1;i<=m;i++){ cin>>u>>v>>c; g[u][v]=c; } floyd_warshall(g); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=x;k++) if(b[i][k]!=-1&&s[j][k]!=-1) p[i][j]=max(p[i][j],s[j][k]-b[i][k]); ll l=1, r=1e9; while(l<=r){ ll mid=(l+r)/2; cout<<mid<<endl; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g2[i][j]=mid*min(g[i][j],INF/mid)-p[i][j]; floyd_warshall(g2); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout<<g2[i][j]<<' '; cout<<endl; } bool ciclu=0; for(int i=1;i<=n;i++) if(g2[i][i]<=0) ciclu=1; if(ciclu) l=mid+1; else r=mid-1; } cout<<r; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...