제출 #1210732

#제출 시각아이디문제언어결과실행 시간메모리
1210732Aviansh트리 (IOI24_tree)C++20
10 / 100
2094 ms24484 KiB
#include "tree.h" #include <bits/stdc++.h> using namespace std; int n; vector<int> p, w; vector<vector<int>>g; void init(vector<int> P, vector<int> W) { p = P; w = W; n = (int)p.size(); g=vector<vector<int>>(n,vector<int>()); for(int i = 1;i<n;i++){ g[p[i]].push_back(i); } } long long dfs(int st, int l, int r, long long c[]){ long long belsum = 0; if(g[st].size()==0){ c[st]=l; return l; } for(int i : g[st]){ belsum+=dfs(i,l,r,c); } c[st]=0; if(belsum>r){ c[st]=-(belsum-r); belsum+=c[st]; } return belsum; } long long query(int L, int R) { long long C[n]; dfs(0,L,R,C); long long ans = 0; for(int i = 0;i<n;i++){ ans+=abs(C[i]*w[i]); } return ans; }
#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...