제출 #1273601

#제출 시각아이디문제언어결과실행 시간메모리
1273601mkkkkkkkk트리 (IOI24_tree)C++20
0 / 100
2097 ms23820 KiB
#include "tree.h" #include <bits/stdc++.h> using namespace std; vector<int> adj[200001]; int arr[200001],arr2[200001]; void dfs(int i,long long& res,int l,int r) { int sum=0; for(auto it : adj[i]) { dfs(it,res,l,r); sum+=arr2[it]; } if(adj[i].size()==0) { sum=l; res+=l*arr[i]; } if(sum>r) { int br=sum-r; sum=r; res+=br*arr[i]; } arr2[i]=l; } void init(std::vector<int> P, std::vector<int> W) { for(int i=1;i<P.size();i++) { adj[P[i]].push_back(i); arr[i]=W[i]; } arr[0]=W[0]; } long long query(int L, int R) { long long res=0; dfs(0,res,L,R); return res; }
#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...