230842026-01-16 11:45:35ercseferencTársaság (50)cpp17Elfogadva 50/5019ms820 KiB
#include <bits/stdc++.h>
using namespace std;
int n,k,l;
bool jo;
long long kappa;
struct munk{vector<int>kim; long long fon;};
vector<munk>a;
void tav(int x, long long maxh){
    long long d=0;
    for(int i:a[x].kim){
        tav(i,maxh);
        d=max(d, kappa+a[i].fon);}
    if(d+a[x].fon>maxh){
        l++; kappa=-a[x].fon;}
    else kappa=d;
    if(l>k){jo=0; return;}
    }

int main()
{
    //ifstream f("szamok.txt");
    cin>>n>>k; a.resize(n+1);
    vector<bool>b(n+1);
    for(int i=2; i<=n; i++){
        long long x,y; cin>>x>>y;
        a[x].kim.push_back(i);
        a[i].fon=y;}
    long long s=0,t=10e14,koz;
    while(s!=t){
        jo=1;
        l=0; koz=(s+t)/2;
        tav(1,koz);
        if(jo)t=koz;
        else s=koz+1;}
    cout<<t;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/09ms640 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms500 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms424 KiB
8Elfogadva3/32ms316 KiB
9Elfogadva3/34ms316 KiB
10Elfogadva3/36ms316 KiB
11Elfogadva3/37ms560 KiB
12Elfogadva3/310ms620 KiB
13Elfogadva4/413ms680 KiB
14Elfogadva4/413ms564 KiB
15Elfogadva4/414ms768 KiB
16Elfogadva4/417ms816 KiB
17Elfogadva4/419ms820 KiB