Submission #75814366
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
// https://github.com/skrewbar/cp-templates
using ll = long long;
#define all(v) (v).begin(), (v).end()
#define compress(v) \
sort(all(v)); \
v.erase(unique(all(v)), (v).end())
#define by(x) [](const auto& a, const auto& b) { return a.x < b.x; }
#define by_desc(x) [](const auto& a, const auto& b) { return a.x > b.x; }
template <typename T>
using MinHeap = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
bool minimize(T& target, T candidate) {
return target > candidate ? (target = candidate, true) : false;
}
template <typename T>
bool maximize(T& target, T candidate) {
return target < candidate ? (target = candidate, true) : false;
}
int w[5050], p[5050];
vector<int> childs[5050];
int mem = 0;
void findLeafs(int cur) {
if (childs[cur].empty()) {
mem += w[cur];
return;
}
for (int child : childs[cur]) {
if (child == p[cur])
continue;
findLeafs(child);
}
}
int answer = 0;
void calc(int cur) {
if (childs[cur].empty())
return;
for (int child : childs[cur]) {
if (child == p[cur])
continue;
calc(child);
}
mem += w[cur];
maximize(answer, mem);
for (int child : childs[cur]) {
if (child == p[cur])
continue;
mem -= w[child];
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, M;
cin >> N >> M;
for (int i = 1; i <= N; i++)
cin >> w[i];
for (int i = 2; i <= N; i++) {
cin >> p[i];
childs[p[i]].push_back(i);
}
findLeafs(1);
calc(1);
if (answer > M)
cout << "OOM";
else
cout << answer;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Mobilint Tensor Scheduling (REGULUS) |
| User | skuru |
| Language | C++23 (GCC 15.2.0) |
| Score | 100 |
| Code Size | 1855 Byte |
| Status | AC |
| Exec Time | 9 ms |
| Memory | 4024 KiB |
Judge Result
| Set Name | Sample | All | ||
|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||
| Status | AC |
|
| Set Name | Test Cases |
|---|---|
| Sample | |
| All | 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01 | AC | 9 ms | 3420 KiB |
| 02 | AC | 1 ms | 3300 KiB |
| 03 | AC | 1 ms | 3420 KiB |
| 04 | AC | 1 ms | 3416 KiB |
| 05 | AC | 1 ms | 3484 KiB |
| 06 | AC | 1 ms | 3356 KiB |
| 07 | AC | 1 ms | 3360 KiB |
| 08 | AC | 1 ms | 3364 KiB |
| 09 | AC | 1 ms | 3320 KiB |
| 10 | AC | 1 ms | 3484 KiB |
| 11 | AC | 1 ms | 3416 KiB |
| 12 | AC | 1 ms | 3360 KiB |
| 13 | AC | 1 ms | 3420 KiB |
| 14 | AC | 1 ms | 3308 KiB |
| 15 | AC | 1 ms | 3340 KiB |
| 16 | AC | 1 ms | 3496 KiB |
| 17 | AC | 1 ms | 3360 KiB |
| 18 | AC | 1 ms | 3488 KiB |
| 19 | AC | 1 ms | 3416 KiB |
| 20 | AC | 1 ms | 3416 KiB |
| 21 | AC | 1 ms | 3420 KiB |
| 22 | AC | 1 ms | 3300 KiB |
| 23 | AC | 1 ms | 3416 KiB |
| 24 | AC | 1 ms | 3356 KiB |
| 25 | AC | 1 ms | 3340 KiB |
| 26 | AC | 1 ms | 3308 KiB |
| 27 | AC | 1 ms | 3420 KiB |
| 28 | AC | 1 ms | 3484 KiB |
| 29 | AC | 1 ms | 3488 KiB |
| 30 | AC | 1 ms | 3428 KiB |
| 31 | AC | 1 ms | 3340 KiB |
| 32 | AC | 1 ms | 3456 KiB |
| 33 | AC | 1 ms | 3560 KiB |
| 34 | AC | 1 ms | 3612 KiB |
| 35 | AC | 1 ms | 3544 KiB |
| 36 | AC | 1 ms | 3488 KiB |
| 37 | AC | 1 ms | 3624 KiB |
| 38 | AC | 1 ms | 3548 KiB |
| 39 | AC | 1 ms | 3448 KiB |
| 40 | AC | 1 ms | 3624 KiB |
| 41 | AC | 1 ms | 3612 KiB |
| 42 | AC | 1 ms | 3612 KiB |
| 43 | AC | 1 ms | 3484 KiB |
| 44 | AC | 1 ms | 3548 KiB |
| 45 | AC | 1 ms | 3488 KiB |
| 46 | AC | 1 ms | 3548 KiB |
| 47 | AC | 1 ms | 3560 KiB |
| 48 | AC | 1 ms | 3484 KiB |
| 49 | AC | 1 ms | 3564 KiB |
| 50 | AC | 1 ms | 3612 KiB |
| 51 | AC | 1 ms | 3528 KiB |
| 52 | AC | 1 ms | 3612 KiB |
| 53 | AC | 1 ms | 3564 KiB |
| 54 | AC | 1 ms | 3612 KiB |
| 55 | AC | 1 ms | 3548 KiB |
| 56 | AC | 1 ms | 3704 KiB |
| 57 | AC | 2 ms | 3688 KiB |
| 58 | AC | 1 ms | 3752 KiB |
| 59 | AC | 2 ms | 3932 KiB |
| 60 | AC | 2 ms | 3768 KiB |
| 61 | AC | 2 ms | 3872 KiB |
| 62 | AC | 1 ms | 3616 KiB |
| 63 | AC | 2 ms | 4024 KiB |
| 64 | AC | 2 ms | 3960 KiB |
| 65 | AC | 2 ms | 3948 KiB |
| 66 | AC | 2 ms | 3832 KiB |
| 67 | AC | 2 ms | 4000 KiB |
| 68 | AC | 2 ms | 3656 KiB |
| 69 | AC | 1 ms | 3564 KiB |
| 70 | AC | 1 ms | 3560 KiB |