Submission #1245429

#TimeUsernameProblemLanguageResultExecution timeMemory
1245429CyberCowTree (IOI24_tree)C++20
10 / 100
2095 ms19360 KiB
#include "tree.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int n; vector<int> p, w; vector<int> v[200005]; ll l, r; ll ans =0; ll Dfs(int g) { if(v[g].size() == 0) { ans += w[g] * l; return l; } ll gg = 0; for(auto to: v[g]) { gg+=Dfs(to); } if(gg > r) { ans += (gg - r) * w[g]; return r; } return gg; } void init(vector<int> P, vector<int> W) { w = W; p = P; n = (int)p.size(); for (int i = 1; i < n; i++) { v[p[i]].push_back(i); } } long long query(int L, int R) { l = L; r = R; ans = 0; Dfs(0); 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...