#include <bits/stdc++.h>
using namespace std;
#define int long long
#define speedIO ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define mod 1000000007
#define f first
#define s second
#define pii pair<int,int>
#define pb push_back
vector<vector<int>> graph;
vector<int> x,dp;
void dfs(int u, int p){
int sum=0;
for(int v:graph[u]){
if(v==p) continue;
dfs(v,u);
sum+=dp[v];
}
dp[u]=max(dp[u],x[u]+sum);
}
int32_t main(){
speedIO;
int t,n,m,k,q;
//cin>>t;
t=1;
while(t--){
int money;
cin>>n>>money;
graph.resize(n+1);
x.resize(n+1);
dp.resize(n+1,0);
x[0]=0;
for(int i=1;i<=n;i++){
int cost,parent;
cin>>cost>>parent;
graph[i].pb(parent);
graph[parent].pb(i);
x[i]=cost;
}
dfs(0,-1);
cout<<dp[0];
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |