Submission #1246899

#TimeUsernameProblemLanguageResultExecution timeMemory
1246899KindaGoodGamesMagic Tree (CEOI19_magictree)C++20
0 / 100
65 ms6724 KiB
#include<bits/stdc++.h>

using namespace std;
#define pii pair<int,int>

int n, m, k;
vector<pii> fruits;
vector<vector<int>> adj;

vector<vector<int>> dp;
void DFS(int v, int p){
    for(auto u : adj[v]){
        if(u == p) continue;
        DFS(u,v);
    }

    for(int t = 1; t <= k; t++){
        int s = 0;
        for(auto u : adj[v]){
            s += dp[t][u];
        }

        int add = 0;
        if(t == fruits[v].first){
            add += fruits[v].second;
        }
        dp[t][v] = max(s + add, dp[t-1][v]);
    }
}

int main(){
    cin >> n >> m >> k;

    adj.resize(n);
    fruits.resize(n);

    int s = 0;

    for(int i = 1; i < n; i++){
        int p;
        cin >> p;
        p--;
        adj[i].push_back(p);
        adj[p].push_back(i);
    }

    for(int i = 0; i <m; i++){
        int v, d, w;
        cin >> v >> d >>w;
        s += w;
    }
 
    cout << s << endl;
}
#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...