217822026-01-13 22:04:10szilVillanyautócpp17Accepted 60/60222ms580 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using S = pair<ll, ll>;

const ll INF = 1e12;
const int MAXN = 101;

int n, m, k;

vector<pair<int, ll>> g[MAXN];

S step(S x, ll w, ll cap) {
    if (w > cap) return {INF, INF};
    S res = x;
    res.second += w;
    if (res.second > cap) {
        res.first += 1;
        res.second = w;
    }
    return res;
}

bool f(ll cap) {
    for (int i = 1; i <= n; i++) {
        priority_queue<pair<S, int>, vector<pair<S, int>>, greater<pair<S, int>>> pq;
        vector<S> dist(n+1, {INF, INF});
        dist[i] = {0, cap};
        pq.push({{0, cap}, i});
        while (!pq.empty()) {
            auto [s, u] = pq.top();
            pq.pop();
            if (dist[u] != s) continue;
            for (auto [v, w] : g[u]) {
                S d = step(s, w, cap);
                if (d < dist[v]) {
                    dist[v] = d;
                    pq.push({d, v});
                }
            }
        }
        int cnt = 0;
        for (int j = 1; j <= n; j++) {
            cnt += dist[j].first <= k;
        }
        if (cnt < n) return 0;
    }
    return 1;
}

void solve() {
    cin >> n >> m >> k;
    for (int i = 0; i < m; i++) {
        int u, v; ll w; cin >> u >> v >> w;
        g[u].emplace_back(v, w);
        g[v].emplace_back(u, w);
    }
    ll lo = 1, hi = INF;
    while (lo < hi) {
        ll mid = (lo + hi) / 2;
        if (f(mid)) hi = mid;
        else lo = mid+1;
    }
    cout << lo << "\n";
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int t = 1; 
    // cin >> t;
    while (t--) solve();
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base60/60
1Accepted0/01ms316 KiB
2Accepted0/068ms316 KiB
3Accepted1/117ms316 KiB
4Accepted1/134ms316 KiB
5Accepted1/141ms512 KiB
6Accepted2/279ms316 KiB
7Accepted2/2138ms316 KiB
8Accepted2/2222ms564 KiB
9Accepted1/114ms432 KiB
10Accepted1/18ms316 KiB
11Accepted1/14ms316 KiB
12Accepted2/256ms436 KiB
13Accepted2/239ms316 KiB
14Accepted2/218ms316 KiB
15Accepted3/343ms316 KiB
16Accepted3/363ms316 KiB
17Accepted2/28ms316 KiB
18Accepted2/230ms500 KiB
19Accepted2/232ms492 KiB
20Accepted2/241ms512 KiB
21Accepted2/217ms316 KiB
22Accepted2/28ms424 KiB
23Accepted3/337ms500 KiB
24Accepted3/3123ms512 KiB
25Accepted3/3123ms520 KiB
26Accepted3/3194ms580 KiB
27Accepted3/382ms316 KiB
28Accepted3/348ms512 KiB
29Accepted3/334ms316 KiB
30Accepted3/343ms428 KiB