#include <bits/stdc++.h>
#include "tree.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
int n;
std::vector<int> p, w;
ll k;
vector<vector<int>> adj;
void dfs(int n, int p=-1) {
bool leaf = true;
for (auto x : adj[n]) {
if (x==p) continue;
leaf = false;
dfs(x, n);
}
if (leaf) k++;
}
void init(std::vector<int> P, std::vector<int> W) {
p = P;
w = W;
n = (int)p.size();
adj.assign(n, {});
for (int i=1; i<n; i++) {
int a = i;
int b = p[i];
adj[a].push_back(b);
adj[b].push_back(a);
}
k=0;
dfs(0);
}
long long query(int L, int R) {
return k*L+(max(0ll, k*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... |