#include<bits/stdc++.h>
#define ll long long
#define int ll
#define pii pair<int,int>
#define tiii tuple<int,int,int>
using namespace std;
vector<int> val;
vector<vector<int>> adj;
vector<int> dp;
void DFS(int v){
dp[v] = val[v];
for(auto u : adj[v]){
DFS(u);
dp[v] = max(dp[v], dp[v]+dp[u]);
}
}
int32_t main(){
int n, s;
cin >> n >> s;
val.resize(n+1);
adj.resize(n+1);
dp.resize(n+1);
for(int i = 1; i <= n; i++){
int c, r;
cin >> c >> r;
val[i] = c;
adj[r].push_back(i);
}
DFS(0);
cout << max(0LL,dp[0]) << endl;
}
# | 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... |