#include <bits/stdc++.h>
#define int long long
using namespace std;
int a[300005], b[300005];
vector<int> adj[300005];
int solve(int u, int p, int s) {
int ans = 0;
for (int v : adj[u]) {
if (v == p) continue;
ans += max(0ll, solve(v, u, s + a[v]));
}
return max(ans, s);
}
signed main() {
int n, s; cin >> n >> s;
for (int i = 1; i <= n; i++) {
cin >> a[i] >> b[i];
adj[i].push_back(b[i]);
adj[b[i]].push_back(i);
}
// subtask 1
cout << solve(0, -1, 0) << '\n';
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... |