Submission #1245433

#TimeUsernameProblemLanguageResultExecution timeMemory
1245433CyberCowTree (IOI24_tree)C++20
0 / 100
49 ms14752 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; if(n * l <= r) return n * l; return 2 * n * 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...