This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define int __int128
int n;int m;int K;
int buy[110][1100];
int sell[110][1100];
int odis[110][110];
int dis[110][110];
int tmp[110][110];
int mer[110][110];
int ok(int mi){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
dis[i][j]=odis[i][j]*mi*-1+mer[i][j];
}
}
for(int md=1;md<=n;md++){
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
dis[a][b]=max(dis[a][b],dis[a][md]+dis[md][b]);
tmp[a][b]=dis[a][b];
}
}
}
for(int md=1;md<=n;md++){
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
dis[a][b]=max(dis[a][b],dis[a][md]+dis[md][b]);
}
}
}
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
if(tmp[a][b]!=dis[a][b]){return 1;}
}
}
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
if(a==b){continue;}
if(dis[a][b]+dis[b][a]>=0){return 1;}
}
}
return 0;
}
int read(){
long long ret;
cin>>ret;
return ret;
}
signed main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
n=read();m=read();K=read();
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
odis[i][j]=1e18;
}
}
for(int i=1;i<=n;i++){
odis[i][i]=0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=K;j++){
buy[i][j]=read();sell[i][j]=read();
// cin>>buy[i][j]>>sell[i][j];
}
}
for(int i=1;i<=m;i++){
int a;int b;int c;
//cin>>a>>b>>c;
a=read();b=read();c=read();
odis[a][b]=min(odis[a][b],c);
}
for(int md=1;md<=n;md++){
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
odis[a][b]=min(odis[a][b],odis[a][md]+odis[md][b]);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=K;k++){
if(buy[i][k]==-1||sell[j][k]==-1){continue;}
mer[i][j]=max(mer[i][j],sell[j][k]-buy[i][k]);
}
}
}
int l=0;int r=1e9;
while(l<r){
int mi=l+(r-l+1)/2;
if(ok(mi)){
l=mi;
}else{
r=mi-1;
}
}
long long op=l;
cout<<op<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |