66732023-12-15 21:39:41anonVillanyautócpp17Időlimit túllépés 26/601.1s4272 KiB
#include <bits/stdc++.h>
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define all(x) x.begin(), x.end()
typedef long long ll;
using namespace std;
const ll INF = ~(1LL << 63);
ll N, M, K, G[101][101];
void walk(ll node, ll k, ll Q, ll C, vector<bool> &vis, vector<array<ll, 2>> &states) {
    ll i;
    vis[node] = true;
    if(states[node][0] != -1 && (states[node][0] > k || (states[node][0] == k && states[node][1] > Q)))
        return;
    states[node][0] = k;
    states[node][1] = Q;
    for(i = 1; i <= N; i++) {
        if(!G[node][i])
            continue;
        if(G[node][i] <= Q)
            walk(i, k, Q - G[node][i], C, vis, states);
        else if(G[node][i] <= C && k > 0)
            walk(i, k - 1, C - G[node][i], C, vis, states);
    }
}
int main()
{
    FastIO;
    ll i, n1, n2, C, bsmin, bsmax;
    cin >> N >> M >> K;
    bsmin = INF;
    bsmax = 0;
    for(i = 0; i < M; i++) {
        cin >> n1 >> n2 >> C;
        G[n1][n2] = C;
        G[n2][n1] = C;
        bsmin = min(C, bsmin);
        bsmax += C;
    }
    while(bsmin != bsmax - 1) {
        C = bsmin + (bsmax - bsmin) / 2;
        for(i = 1; i <= N; i++) {
            vector<bool> vis(N + 1, false);
            vector<array<ll, 2>> states(N + 1, { -1, -1 });
            walk(i, K, 0, C, vis, states);
            if(!all_of(vis.begin() + 1, vis.end(), [](auto a) { return a; })) {
                bsmin = C;
                goto next;
            }
        }
        bsmax = C;
        next:;
    }
    cout << bsmax << '\n';
    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base26/60
1Elfogadva0/03ms1972 KiB
2Időlimit túllépés0/01.1s1352 KiB
3Elfogadva1/1151ms2168 KiB
4Időlimit túllépés0/11.054s1688 KiB
5Időlimit túllépés0/11.08s1868 KiB
6Időlimit túllépés0/21.046s2012 KiB
7Időlimit túllépés0/21.07s2372 KiB
8Időlimit túllépés0/21.07s2296 KiB
9Elfogadva1/198ms3344 KiB
10Elfogadva1/17ms3472 KiB
11Elfogadva1/14ms3428 KiB
12Elfogadva2/2827ms3592 KiB
13Elfogadva2/250ms3592 KiB
14Elfogadva2/213ms3864 KiB
15Elfogadva3/375ms4072 KiB
16Időlimit túllépés0/31.029s3148 KiB
17Elfogadva2/235ms3876 KiB
18Időlimit túllépés0/21.054s3056 KiB
19Időlimit túllépés0/21.052s3832 KiB
20Időlimit túllépés0/21.049s3052 KiB
21Időlimit túllépés0/21.077s3976 KiB
22Elfogadva2/224ms4004 KiB
23Elfogadva3/3301ms3888 KiB
24Időlimit túllépés0/31.074s3872 KiB
25Időlimit túllépés0/31.054s3872 KiB
26Időlimit túllépés0/31.067s3400 KiB
27Időlimit túllépés0/31.065s3612 KiB
28Elfogadva3/3512ms4248 KiB
29Elfogadva3/3331ms4272 KiB
30Időlimit túllépés0/31.039s4220 KiB