제출 #1231574

#제출 시각아이디문제언어결과실행 시간메모리
1231574bangan트리 (IOI24_tree)C++20
10 / 100
2096 ms20388 KiB
#include "tree.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define ll long long const int N = 200200; int n; std::vector<int> w; vector<int> adj[N]; ll res; ll dfs(int v, ll l, ll r) { if (adj[v].empty()) { res += l * w[v]; return l; } ll sum = 0; for (int u : adj[v]) sum += dfs(u, l, r); assert(l <= sum); ll t = max(0ll, sum - r); res += t * w[v]; return sum - t; } void init(std::vector<int> P, std::vector<int> W) { w = W; n = W.size(); for (int i=1; i<n; i++) adj[P[i]].pb(i); } long long query(int L, int R) { res = 0; dfs(0, 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...