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 |