9258 2024. 02. 19 12:27:34 Ablablabla Társaság (50) cpp17 Elfogadva 50/50 18ms 5700 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair<ll, ll> pii;

vector<vector<pii>> csucsok;

pii szamol(ll akt, ll maxTav){
    pii vissza = {0, 0};

    for(pii x : csucsok[akt]){
        pii a = szamol(x.first, maxTav);

        vissza.second += a.second;

        if(a.first + x.second > maxTav){
            vissza.second++;
        } else{
            vissza.first = max(vissza.first, a.first + x.second);
        }
    }

    return vissza;
}

int main(){
    ll n, k;
    cin >> n >> k;

    csucsok.assign(n, vector<pii>());
    for(ll i = 1; i < n; i++){
        ll a, t;
        cin >> a >> t;
        a--;

        csucsok[a].push_back({i, t});
    }

    ll l = 0, r = 1e13;
    ll valasz = 0;
    while(l <= r){
        ll mid = (l + r) / 2;

        ll akt = szamol(0, mid).second;

        if(akt <= k){
            valasz = mid;
            r = mid - 1;
        } else{
            l = mid + 1;
        }
    }

    cout << valasz << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 10ms 2564 KiB
3 Elfogadva 3/3 3ms 2328 KiB
4 Elfogadva 3/3 3ms 2540 KiB
5 Elfogadva 3/3 3ms 2576 KiB
6 Elfogadva 3/3 3ms 2808 KiB
7 Elfogadva 3/3 3ms 3044 KiB
8 Elfogadva 3/3 4ms 3160 KiB
9 Elfogadva 3/3 4ms 3472 KiB
10 Elfogadva 3/3 7ms 3624 KiB
11 Elfogadva 3/3 8ms 4036 KiB
12 Elfogadva 3/3 10ms 4368 KiB
13 Elfogadva 4/4 13ms 4620 KiB
14 Elfogadva 4/4 14ms 4748 KiB
15 Elfogadva 4/4 14ms 5248 KiB
16 Elfogadva 4/4 17ms 5480 KiB
17 Elfogadva 4/4 18ms 5700 KiB