| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1231574 | bangan | 트리 (IOI24_tree) | C++20 | 2096 ms | 20388 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 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... | ||||
