제출 #1269194

#제출 시각아이디문제언어결과실행 시간메모리
1269194chinhhoangJobs (BOI24_jobs)C++20
0 / 100
108 ms22720 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int>child[300003];
long long sum[300003], mx[300003], energy[300003];
bool alive[300003];
void dfs(int u){
    mx[u] = sum[u];
    for(auto v : child[u]){
        sum[v] = sum[u] + energy[v];
        dfs(v);
        mx[u] = max(mx[u], mx[v]);
    }
}
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int n;
    long long s;
    cin >> n >> s;
    for(int i=1;i<=n;i++){
        int p;
        cin >> energy[i] >> p;
        if(p == 0) alive[i] = 1;
        else child[p].push_back(i);
    }
    long long ans = 0;
    for(int i=1;i<=n;i++){
        if(alive[i]){
            sum[i] = energy[i];
            dfs(i);
            ans += max(0ll,mx[i]);
        }
    }
    cout << ans;
    return 0;
}
#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...