제출 #1310120

#제출 시각아이디문제언어결과실행 시간메모리
1310120comet0Jobs (BOI24_jobs)C++20
11 / 100
87 ms23624 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<vector<ll>> adj;
vector<ll> a;

ll dfs(ll x, ll s) {
	ll ans = a[x];
	for (auto& y : adj[x]) {
		ll e = dfs(y, s + a[y]);
		if (e <= 0) continue;
		ans += e;
	}
	return ans;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
    
    ll n, s; cin >> n >> s;
    adj.resize(n); a.resize(n);
    vector<ll> st;
    for (ll i = 0; i < n; i++) {
		ll p; cin >> a[i] >> p;
		p--;
		if (p == -1) st.push_back(i);
		else adj[p].push_back(i);
	}
	ll ans = 0;
	for (auto& x : st) {
		ll e = dfs(x, s + a[x]);
		ans += max(e, 0LL);
	}
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...