Submission #945344

# Submission time Handle Problem Language Result Execution time Memory
945344 2024-03-13T16:29:56 Z TAhmed33 Travelling Merchant (APIO17_merchant) C++
0 / 100
99 ms 4704 KB
#include <bits/stdc++.h>
using namespace std;
typedef __int128 ll;
const ll inf = LLONG_MAX / 2;
const int MAXN = 100 + 25;
ll s[MAXN][1001], b[MAXN][1001]; int n, m, k;
ll adj[MAXN][MAXN], adj2[MAXN][MAXN], val[MAXN][MAXN];
bool check (ll x) {
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			adj2[i][j] = x * min(inf / x, adj[i][j]) - val[i][j];
		}
	}
	bool flag = 0;
	for (int l = 1; l <= n; l++) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n; j++) {
				adj2[i][j] = min(adj2[i][j], adj2[i][l] + adj2[l][j]);
			}
		}
	}
	for (int i = 1; i <= n; i++) flag |= adj2[i][i] <= 0;
	return flag;
}
int main () {
	cin >> n >> m >> k;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= k; j++) {
			int x, y; cin >> x >> y;
			b[i][j] = x, s[i][j] = y;
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			adj[i][j] = inf;	
		}
	}
	while (m--) {
		int a, b, c; cin >> a >> b >> c;
		adj[a][b] = c;
	}
	for (int l = 1; l <= n; l++) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n; j++) {
				adj[i][j] = min(adj[i][j], adj[i][l] + adj[l][j]);
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			for (int l = 1; l <= k; l++) {
				if (b[i][l] != -1 && s[j][l] != -1) {
					val[i][j] = max(val[i][j], s[j][l] - b[i][l]);
				}
			}
		}
	}
	ll l = 1, r = 1e9, ans = -1;
	while (l <= r) {
		ll mid = (l + r) / 2;
		if (check(mid)) {
			l = mid + 1; 
		} else {
			r = mid - 1; ans = mid;
		}
	}
	cout << (long long)(ans) << '\n';
}
# Verdict Execution time Memory Grader output
1 Incorrect 99 ms 4528 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 4444 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 56 ms 4704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 4444 KB Output isn't correct
2 Halted 0 ms 0 KB -