Submission #1338362

#TimeUsernameProblemLanguageResultExecution timeMemory
1338362yuichiro17Tree (IOI24_tree)C++20
7 / 100
50 ms16040 KiB
#include "tree.h"
#include<bits/stdc++.h>
using namespace std;
using ll=long long;

vector<vector<int>>adj;
vector<int>cnt;

void init(std::vector<int> P, std::vector<int> W) {
    int n=P.size();
    adj.resize(n);
    for(int i=1;i<n;i++){
        adj[P[i]].push_back(i);
    }
    cnt.resize(n,0);
    for(int i=0;i<n;i++)if(adj[i].empty())cnt[i]=1;
    for(int i=n-1;i>0;i--)cnt[P[i]]+=cnt[i];
}

long long query(int L, int R) {
    return (ll)L*cnt[0]+max(0LL,(ll)L*cnt[0]-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...