Submission #100443

# Submission time Handle Problem Language Result Execution time Memory
100443 2019-03-11T10:13:28 Z square1001 Travelling Merchant (APIO17_merchant) C++14
0 / 100
852 ms 1400 KB
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
const int inf = 1012345678;
int main() {
	int N, M, K;
	cin >> N >> M >> K;
	vector<vector<int> > B(N, vector<int>(K)), S(N, vector<int>(K));
	for(int i = 0; i < N; ++i) {
		for(int j = 0; j < K; ++j) {
			cin >> B[i][j] >> S[i][j];
		}
	}
	vector<vector<int> > D(N, vector<int>(N, inf));
	for(int i = 0; i < N; ++i) D[i][i] = 0;
	for(int i = 0; i < M; ++i) {
		int V, W, T;
		cin >> V >> W >> T; --V, --W;
		D[V][W] = T;
	}
	for(int i = 0; i < N; ++i) {
		for(int j = 0; j < N; ++j) {
			for(int k = 0; k < N; ++k) {
				D[j][k] = min(D[j][k], D[j][i] + D[i][k]);
			}
		}
	}
	long long L = 0, R = inf;
	while(R - L > 1) {
		long long M = (L + R) / 2;
		vector<vector<long long> > C(N, vector<long long>(N, 1LL << 62));
		for(int i = 0; i < N; ++i) {
			for(int j = 0; j < N; ++j) {
				if(D[i][j] == inf) continue;
				C[i][j] = (long long)(D[i][j]) * M;
				for(int k = 0; k < K; ++k) {
					if(S[j][k] != -1 && B[i][k] != -1) {
						C[i][j] = min(C[i][j], (long long)(D[i][j]) * M - (S[j][k] - B[i][k]));
					}
				}
			}
		}
		for(int i = 0; i < N; ++i) {
			for(int j = 0; j < N; ++j) {
				for(int k = 0; k < N; ++k) {
					C[j][k] = min(C[j][k], C[j][i] + C[i][k]);
				}
			}
		}
		bool ok = true;
		for(int i = 0; i < N; ++i) {
			if(C[i][i] < 0) ok = false;
			for(int j = 0; j < N; ++j) {
				if(i != j && C[i][j] + C[j][i] <= 0) ok = false;
			}
		}
		if(ok) R = M;
		else L = M;
	}
	cout << int(L) << endl;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 408 ms 1400 KB Output is correct
2 Correct 39 ms 504 KB Output is correct
3 Correct 38 ms 512 KB Output is correct
4 Correct 8 ms 384 KB Output is correct
5 Correct 10 ms 384 KB Output is correct
6 Correct 9 ms 384 KB Output is correct
7 Correct 18 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 9 ms 384 KB Output is correct
10 Correct 9 ms 384 KB Output is correct
11 Correct 10 ms 384 KB Output is correct
12 Correct 3 ms 384 KB Output is correct
13 Incorrect 11 ms 384 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 384 KB Output is correct
2 Correct 8 ms 384 KB Output is correct
3 Correct 13 ms 384 KB Output is correct
4 Correct 14 ms 512 KB Output is correct
5 Correct 20 ms 384 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Incorrect 8 ms 512 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 131 ms 568 KB Output is correct
2 Correct 852 ms 1196 KB Output is correct
3 Correct 76 ms 640 KB Output is correct
4 Correct 133 ms 780 KB Output is correct
5 Correct 125 ms 888 KB Output is correct
6 Correct 75 ms 640 KB Output is correct
7 Correct 20 ms 384 KB Output is correct
8 Correct 2 ms 256 KB Output is correct
9 Correct 18 ms 384 KB Output is correct
10 Correct 18 ms 384 KB Output is correct
11 Incorrect 16 ms 384 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 384 KB Output is correct
2 Correct 8 ms 384 KB Output is correct
3 Correct 13 ms 384 KB Output is correct
4 Correct 14 ms 512 KB Output is correct
5 Correct 20 ms 384 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Incorrect 8 ms 512 KB Output isn't correct
8 Halted 0 ms 0 KB -