#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mmod = 998244353;
#define vl vector<long long>
#define vll vector<vector<long long>>
#define pl pair<long long, long long>
#define vb vector<bool>
vll tree;
vl weights;
vl c;
vl parents;
vl w;
vl subs;
ll p;
pl dfs(ll v, ll p, ll l){
ll minimum = w[v];
ll idx = v;
for (auto x : tree[v]){
if (subs[x] > l && x != p){
auto sub = dfs(x, v, l);
if (sub.second < minimum){
minimum = sub.second;
idx = sub.first;
}
}
}
return {idx, minimum};
}
long long query(int L, int R){
if (L*p <= R){return L*p;}
ll s = L*p + (L*p-R);
return s;
}
void init(std::vector<int> P, std::vector<int> W){
for (ll i = 0; i < W.size(); i++){weights.push_back(W[i]);}
p = 0;
tree.resize(P.size());
for (ll i = 1; i < P.size(); i++){
tree[i].push_back(P[i]);
tree[P[i]].push_back(i);
}
for (ll i = 0; i <P.size(); i++){
parents.push_back(P[i]);
w.push_back(W[i]);
}
for (ll i = 1; i < tree.size(); i++){
if (tree[i].size() == 1){
p ++;
}
}
}
/*/int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
return 0;
}/*/
| # | 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... |