44762023-03-28 12:53:27ZsofiaKeresztelyTársaság (50)cpp14Hibás válasz 0/5017ms4520 KiB
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
#define fi first
#define se second
typedef long long ll;
vector<vector<pii> > g;

int restarts(int v, ll val, int d){
    int r = (d > val);
    d = d * (d <= val);
    for (pii x : g[v]){
        r += restarts(x.fi, val, d + x.se);
    }
    return r;
}

int main()
{
    int n, k;
    cin >> n >> k;
    g.resize(n+1);
    for (int i=2; i<=n; i++){
        int a, b;
        cin >> a >> b;
        g[a].push_back({i, b});
    }
    ll l = 0, r = 1e13;
    while (l + 1 < r){
        ll m = (l + r) / 2;
        if (restarts(1, m, 0) > k){
            l = m;
        }
        else{
            r = m;
        }
    }
    cout << r;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/03ms2156 KiB
2Hibás válasz0/08ms2740 KiB
3Hibás válasz0/33ms2408 KiB
4Hibás válasz0/33ms2564 KiB
5Hibás válasz0/33ms2784 KiB
6Hibás válasz0/33ms2996 KiB
7Hibás válasz0/33ms3216 KiB
8Hibás válasz0/33ms3336 KiB
9Hibás válasz0/34ms3512 KiB
10Hibás válasz0/36ms3532 KiB
11Hibás válasz0/37ms3668 KiB
12Hibás válasz0/38ms3804 KiB
13Hibás válasz0/49ms3824 KiB
14Hibás válasz0/412ms3968 KiB
15Hibás válasz0/414ms4060 KiB
16Hibás válasz0/414ms4520 KiB
17Hibás válasz0/417ms4440 KiB