Submission #1245434

#TimeUsernameProblemLanguageResultExecution timeMemory
1245434CyberCowTree (IOI24_tree)C++20
7 / 100
52 ms16932 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 terev = 0; 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); } for (int i = 0; i < n; i++) { if(v[i].size() == 0) terev++; } } long long query(int L, int R) { l = L; r = R; if(terev * l <= r) return terev * l; return 2 * terev * l - r; }
#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...