#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 3e5+1;
vector<int> adj[N];
int x[N], p[N];
ll dp[N];
ll dfs(int u) {
dp[u] = x[u];
for (int v: adj[u]) {
dp[u] += dfs(v);
}
cout << u << " " << dp[u] << endl;
dp[u] = max(dp[u], 0LL);
return dp[u];
}
int main() {
int n;
ll s;
cin >> n >> s;
queue<int> root;
for (int i = 1; i <= n; ++i) {
cin >> x[i] >> p[i];
adj[p[i]].push_back(i);
}
cout << dfs(0) << endl;
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... |