#include "tree.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long
const int N = 200200;
int n;
std::vector<int> w;
vector<int> adj[N];
ll leaf[N];
void dfs(int v) {
if (adj[v].empty()) leaf[v] = 1;
for (int u : adj[v]) {
dfs(u);
leaf[v] += leaf[u];
}
if (w[v]==0) leaf[v] = 1;
}
void init(std::vector<int> P, std::vector<int> W) {
w = W;
n = W.size();
for (int i=1; i<n; i++) adj[P[i]].pb(i);
dfs(0);
}
long long query(int L, int R) {
ll sum = 1ll * L * leaf[0];
return sum + max(0ll, sum - 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... |