Submission #111520

# Submission time Handle Problem Language Result Execution time Memory
111520 2019-05-15T13:57:22 Z Segtree Travelling Merchant (APIO17_merchant) C++14
0 / 100
562 ms 2216 KB
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef long double ld;
#define chmax(a,b) a=max(a,b);
#define chmin(a,b) a=min(a,b);
#define N 110
#define K 1010
ll n,m,k,d[N][N],v[N][N];
ll s[N][K],b[N][K];
void wf(){
    for(int r=1;r<=n;r++){
	for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){
	    d[i][j]=min(d[i][j],d[i][r]+d[r][j]);
	}
    }
}

ld dist[N];
bool solve(ll t){
    /*cout<<"-----"<<t<<endl;
    for(int i=1;i<=n;i++){
	cout<<i<<":";
	for(int j=1;j<=n;j++)cout<<v[i][j]-t*d[i][j]<<" ";
	cout<<endl;
    }*/
    for(int i=1;i<=n;i++)dist[i]=0;
    for(int u=0;u<=N;u++){
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=n;j++)if(i!=j){
		ld ne=dist[i]-(v[i][j]-t*d[i][j]+1e-50);
		if(u==N&&dist[j]>ne)return 1;
		chmin(dist[j],ne);
	    }
	}
    }
    return 0;
}

int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){
	d[i][j]=1e17;
    }
    for(int i=1;i<=n;i++){
	for(int j=0;j<k;j++){
	    cin>>b[i][j]>>s[i][j];
	    d[i][i]=0;
	}
    } 
    for(int i=0;i<m;i++){
	ll x,y,z;cin>>x>>y>>z;
	d[x][y]=z;
    }
    wf();
    /*
    for(int i=1;i<=n;i++){
	cout<<i<<":";
	for(int j=1;j<=n;j++)cout<<d[i][j]<<" ";
	cout<<endl;
    }*/
    for(int r=1;r<=n;r++){
	for(int i=1;i<=n;i++){
	    ll ma=0;
	    for(int j=0;j<k;j++){
		if(~s[i][j]&&~b[r][j])ma=max(ma,s[i][j]-b[r][j]);
	    }
	    v[r][i]=ma;
	}
    }
    ll l=0,r=1e12,mid;
    while(l<r-1){
	mid=(l+r)/2;
	if(solve(mid))l=mid;
	else r=mid;
    }
    cout<<l<<endl;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 562 ms 2044 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 68 ms 888 KB Output is correct
2 Correct 75 ms 868 KB Output is correct
3 Correct 86 ms 896 KB Output is correct
4 Correct 78 ms 1016 KB Output is correct
5 Correct 74 ms 896 KB Output is correct
6 Incorrect 3 ms 304 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 279 ms 1512 KB Output is correct
2 Correct 411 ms 2216 KB Output is correct
3 Correct 294 ms 1380 KB Output is correct
4 Incorrect 496 ms 1536 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 68 ms 888 KB Output is correct
2 Correct 75 ms 868 KB Output is correct
3 Correct 86 ms 896 KB Output is correct
4 Correct 78 ms 1016 KB Output is correct
5 Correct 74 ms 896 KB Output is correct
6 Incorrect 3 ms 304 KB Output isn't correct
7 Halted 0 ms 0 KB -