Submission #1166161

#TimeUsernameProblemLanguageResultExecution timeMemory
1166161anmattroiTree (IOI24_tree)C++17
0 / 100
2095 ms6892 KiB
#include "tree.h" #include <bits/stdc++.h> #define maxn 200005 using namespace std; int n; vector<int> par, w; int64_t cost[maxn]; void init(vector<int> P, vector<int> W) { n = P.size(); par = P; w = W; } long long query(int L, int R) { int64_t ans = 0; for (int i = 0; i < n; i++) cost[i] = 0; for (int i = n-1; i >= 0; i--) { if (cost[i] > R) { int64_t cur_coef = R-cost[i]; if (par[i] >= 0) cost[par[i]] += cur_coef; ans += w[i] * (-cur_coef); continue; } if (cost[i] < L) { int64_t cur_coef = L-cost[i]; if (par[i] >= 0) cost[par[i]] += cur_coef; ans += w[i] * cur_coef; } } return 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...