Submission #1211359

#TimeUsernameProblemLanguageResultExecution timeMemory
1211359sula2Tree (IOI24_tree)C++20
10 / 100
2095 ms15336 KiB
#include <bits/stdc++.h> #define all(a) a.begin(), a.end() #define popcount(x) __builtin_popcountll(x) using namespace std; using namespace chrono; vector<int> adj[200000]; long long W[200000]; int n; long long sum[200000]; void init(vector<int> P, vector<int> a) { n = P.size(); for (int i = 1; i < n; i++) { adj[P[i]].push_back(i); } for (int i = 0; i < n; i++) { W[i] = a[i]; } } long long query(int L, int R) { long long ans = 0; for (int i = n-1; i >= 0; i--) { if (adj[i].empty()) { ans += L*W[i]; sum[i] = L; continue; } sum[i] = 0; for (int j : adj[i]) sum[i] += sum[j]; if (sum[i] > R) { ans += (sum[i] - R)*W[i]; sum[i] = R; } } 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...