This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include <cassert>
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx,avx2,fma")
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
#define MAX 101010
#define MAXS 20
#define INF 1000000000000000001
#define bb ' '
#define ln '\n'
#define Ln '\n'
#define rev(x) ((x<N*2)?(x+N*2):(x-N*2))
#ifdef _MSC_VER
# include <intrin.h>
# define __builtin_popcount __popcnt
#endif
map<int, ll> mp[MAX];
vector<int> adj[MAX];
int D[MAX];
int W[MAX];
void dfs(int x) {
for (auto v : adj[x]) {
dfs(v);
if (mp[v].size() > mp[x].size()) swap(mp[v], mp[x]);
for (auto& [t, val] : mp[v]) mp[x][t] += val;
}
if (D[x]) {
mp[x][D[x]] += W[x];
ll sum = W[x];
while (sum) {
auto it = mp[x].upper_bound(D[x]);
if (it == mp[x].end()) break;
ll val = it->second;
ll m = min(sum, val);
mp[x][it->first] -= m;
sum -= m;
}
}
}
signed main() {
ios::sync_with_stdio(false), cin.tie(0);
int N, M, K;
cin >> N >> M >> K;
int i, p, a, b;
for (i = 2; i <= N; i++) cin >> p, adj[p].push_back(i);
while (M--) {
cin >> p >> a >> b;
D[p] = a;
W[p] = b;
}
dfs(1);
ll ans = 0;
for (auto& [_, v] : mp[1]) ans += v;
cout << ans << ln;
}
# | 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... |