6763 2023. 12. 18 21:48:23 111 Villanyautó cpp17 Elfogadva 60/60 142ms 4460 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

template<typename T>
using min_priority_queue = std::priority_queue<T, vector<T>, greater<T>>;

template<typename T, typename U>
bool ckmin(T& a, const U& b) {
	return b < a ? a = b, true : false;
}

#define A (int)1e12
#define B (int)1e18

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifdef CB
	freopen("be1.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
#endif
	int N, M, K;
	cin >> N >> M >> K;
	vector<vector<pii>> g(N + 1);
	for (int i = 0; i < M; i++) {
		int a, b, c;
		cin >> a >> b >> c;
		g[a].push_back({b, c});
		g[b].push_back({a, c});
	}
	int l = 0, h = A;
	while (l < h) {
		int m = (l + h) / 2;
		// m possible?
		bool ok = true;
		for (int i = 1; i <= N; i++) {
			vector<int> v(N + 1, B);
			min_priority_queue<pii> pq;
			pq.emplace(0, i);
			v[i] = 0;
			while (!pq.empty()) {
				auto j = pq.top();
				pq.pop();
				if (j.first > v[j.second]) {
					continue;
				}
				for (pii p : g[j.second]) {
					if (p.second > m) {
						continue;
					}
					int c = v[j.second] + p.second;
					if (c % A > m) {
						c -= c % A;
						c += A + p.second;
					}
					if (ckmin(v[p.first], c)) {
						pq.emplace(v[p.first], p.first);
					}
				}
			}
			for (int j = 1; j <= N; j++) {
				if (v[j] / A >= K) {
					goto bad;
				}
			}
		}
		if (ok) {
			h = m;
		}
		else {
		bad:
			l = m + 1;
		}
	}
	cout << l << '\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 60/60
1 Elfogadva 0/0 3ms 1832 KiB
2 Elfogadva 0/0 64ms 2236 KiB
3 Elfogadva 1/1 17ms 2392 KiB
4 Elfogadva 1/1 25ms 2668 KiB
5 Elfogadva 1/1 28ms 2856 KiB
6 Elfogadva 2/2 75ms 2908 KiB
7 Elfogadva 2/2 101ms 3484 KiB
8 Elfogadva 2/2 142ms 3520 KiB
9 Elfogadva 1/1 13ms 3208 KiB
10 Elfogadva 1/1 8ms 3296 KiB
11 Elfogadva 1/1 6ms 3540 KiB
12 Elfogadva 2/2 46ms 3552 KiB
13 Elfogadva 2/2 34ms 3472 KiB
14 Elfogadva 2/2 14ms 3600 KiB
15 Elfogadva 3/3 35ms 3700 KiB
16 Elfogadva 3/3 59ms 3684 KiB
17 Elfogadva 2/2 8ms 3604 KiB
18 Elfogadva 2/2 25ms 3876 KiB
19 Elfogadva 2/2 25ms 3912 KiB
20 Elfogadva 2/2 29ms 4028 KiB
21 Elfogadva 2/2 17ms 3980 KiB
22 Elfogadva 2/2 8ms 4172 KiB
23 Elfogadva 3/3 34ms 4212 KiB
24 Elfogadva 3/3 90ms 4304 KiB
25 Elfogadva 3/3 90ms 4120 KiB
26 Elfogadva 3/3 129ms 4308 KiB
27 Elfogadva 3/3 74ms 4340 KiB
28 Elfogadva 3/3 43ms 4244 KiB
29 Elfogadva 3/3 29ms 4372 KiB
30 Elfogadva 3/3 39ms 4460 KiB