#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |