67602023-12-18 21:20:16111Villanyautócpp17Időlimit túllépés 26/601.082s3716 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifdef CB
	freopen("be2.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
#endif
	int N, M, K;
	cin >> N >> M >> K;
	vector<map<int, int>> gg(N + 1);
	for (int i = 0; i < M; i++) {
		int a, b, c;
		cin >> a >> b >> c;
		gg[a].insert({b, c});
		gg[b].insert({a, c});
	}
	int l = 0, h = 1e15;
	while (l < h) {
		int m = (l + h) / 2;
		// m possible?
		bool ok = true;
		for (int i = 1; i <= N; i++) {
			auto g = gg;
			vector<int> v(N + 1);
			vector<vector<int>> l(K + 1);
			v[i] = true;
			l[0].push_back(i);
			for (int j = 0; j < K; j++) {
				vector<int> a(N + 1, -1);
				auto dfs = [&](auto dfs, int i) -> void {
					for (auto [k, c] : g[i]) {
						g[k].erase(i);
						if (!v[k] && a[k] < a[i] - c) {
							a[k] = a[i] - c;
							l[j + 1].push_back(k);
							dfs(dfs, k);
						}
					}
				};
				for (int k : l[j]) {
					a[k] = m;
					dfs(dfs, k);
				}
				for (int k : l[j + 1]) {
					v[k] = true;
				}
			}
			if (count(v.begin(), v.end(), 1) < N) {
				ok = false;
				break;
			}
		}
		if (ok) {
			h = m;
		}
		else {
			l = m + 1;
		}
	}
	cout << l << '\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base26/60
1Elfogadva0/03ms1828 KiB
2Időlimit túllépés0/01.067s1644 KiB
3Hibás válasz0/176ms2152 KiB
4Hibás válasz0/1547ms2624 KiB
5Hibás válasz0/1774ms3016 KiB
6Hibás válasz0/2319ms2796 KiB
7Időlimit túllépés0/21.026s2476 KiB
8Időlimit túllépés0/21.062s2808 KiB
9Elfogadva1/196ms2936 KiB
10Elfogadva1/137ms2880 KiB
11Elfogadva1/135ms2808 KiB
12Elfogadva2/2335ms3128 KiB
13Elfogadva2/2153ms3180 KiB
14Elfogadva2/2128ms3120 KiB
15Hibás válasz0/3164ms3116 KiB
16Időlimit túllépés0/31.067s2636 KiB
17Hibás válasz0/246ms3088 KiB
18Elfogadva2/2537ms3384 KiB
19Elfogadva2/2652ms3412 KiB
20Elfogadva2/2847ms3600 KiB
21Elfogadva2/2195ms3308 KiB
22Hibás válasz0/237ms3464 KiB
23Elfogadva3/3148ms3444 KiB
24Időlimit túllépés0/31.054s2796 KiB
25Időlimit túllépés0/31.072s2940 KiB
26Időlimit túllépés0/31.049s3420 KiB
27Időlimit túllépés0/31.082s3076 KiB
28Elfogadva3/3196ms3592 KiB
29Hibás válasz0/3174ms3716 KiB
30Elfogadva3/3188ms3512 KiB