Submission #1236400

#TimeUsernameProblemLanguageResultExecution timeMemory
1236400dssfsuper2Magic Tree (CEOI19_magictree)C++20
100 / 100
841 ms30144 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
using pii = pair<int, int>;
#define all(x) (x).begin(), (x).end()


vector<int> values;
vector<int> days;
vector<vector<int>> adj;
map<int, int> dpf(int node){
    map<int, int> mmap;
    for(auto thing:adj[node]){
        auto x = dpf(thing);
        if(x.size()>mmap.size())swap(x, mmap);
        for(auto thing:x)mmap[thing.first]+=thing.second;
    }
    if(values[node]!=0){
    mmap[days[node]]+=values[node];
    int x = 0;
    auto it = mmap.upper_bound(days[node]);
    while(it!=mmap.end() && x<values[node]){
        x+=(*it).second;
        if(x<values[node])mmap[(*it).first]=0;
        else it->second=x-values[node];
        it++;
    }
    }
    //cout << node << '\n';
    //for(auto thing:mmap)cout << thing.first << ' ' << thing.second << '\n';
    return mmap;
}
void solve(){
    int n, m, k;cin>>n>>m>>k;
    values.assign(n+1, 0);
    days.assign(n+1, 0);
    adj.resize(n+1);
    for(int i = 2;i<=n;i++){
        int p;cin>>p;
        adj[p].push_back(i);
    }
    for(int i = 0;i<m;i++){
        int v, d, w;cin>>v>>d>>w;
        values[v]=w;
        days[v]=d;
    }
    auto x = dpf(1);
    int res=0;
    for(auto thing:x)res+=thing.second;
    cout << res << '\n';
}











signed main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t = 1;
    while (t--)
    {
        solve();
    }
    
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...