814 | 2022. 01. 16 19:54:25 | Halasz Eszter | Társaság (50) | cpp11 | Hibás válasz 7/50 | 8ms | 3448 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;
//ifstream cin("tarsasag.in");
//ofstream cout("tarsasag.out");
struct adat
{
ll kezd,veg,tav;
};
vector< adat >x;
struct adat2
{
ll veg,tav;
};
vector<adat2>y;
ll n,k,i,a,b,maxi=-1;
ll has(adat a, adat b)
{
if(a.tav>b.tav) return 1;
else return 0;
}
void mely(ll csp, ll t)
{
if(y[csp].veg==0) y[csp].tav=max(y[csp].tav,t);
else
{
if(y[csp].veg!=0) mely(y[csp].veg,t+y[csp].tav);
}
}
int main()
{
cin>>n>>k;
x.resize(n+1);
for(i=1;i<n;++i)
{
cin>>a>>b;
x[i]={i+1,a,b};
}
sort(x.begin()+1,x.end(),has);
//for(i=1;i<=n;++i) cout<<x[i].kezd<<" "<<x[i].veg<<" "<<x[i].tav<<"\n";
y.resize(n+1);
for(i=k+1;i<=n;++i)
y[x[i].kezd]={x[i].veg,x[i].tav};
//for(i=1;i<=n;++i)
//cout<<i<<" "<<y[i].veg<<" "<<y[i].tav<<"\n";
for(i=1;i<=n;++i)
{
if(y[i].veg!=0) mely(i,0);
}
for(i=1;i<=n;++i) if(y[i].tav>maxi) maxi=y[i].tav;
cout<<maxi;
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 7/50 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1804 KiB | |||
2 | Hibás válasz | 0/0 | 8ms | 2280 KiB | |||
3 | Hibás válasz | 0/3 | 1ms | 1960 KiB | |||
4 | Hibás válasz | 0/3 | 1ms | 1964 KiB | |||
5 | Elfogadva | 3/3 | 1ms | 1976 KiB | |||
6 | Hibás válasz | 0/3 | 2ms | 1980 KiB | |||
7 | Hibás válasz | 0/3 | 2ms | 2000 KiB | |||
8 | Hibás válasz | 0/3 | 2ms | 2024 KiB | |||
9 | Hibás válasz | 0/3 | 3ms | 2080 KiB | |||
10 | Hibás válasz | 0/3 | 4ms | 2276 KiB | |||
11 | Hibás válasz | 0/3 | 6ms | 2344 KiB | |||
12 | Hibás válasz | 0/3 | 4ms | 2552 KiB | |||
13 | Hibás válasz | 0/4 | 8ms | 2520 KiB | |||
14 | Hibás válasz | 0/4 | 6ms | 2620 KiB | |||
15 | Hibás válasz | 0/4 | 7ms | 2864 KiB | |||
16 | Elfogadva | 4/4 | 8ms | 3192 KiB | |||
17 | Hibás válasz | 0/4 | 8ms | 3448 KiB |