Submission #75814672


Source Code Expand

#include <iostream>
#include<set>
#include<vector>

using namespace std;

int N, M, w[5001];
vector<int>p[5001];
bool vis[5001];

bool Es(set<int> &S,int n) {
	for (int i:p[n])
		if (S.find(i) == S.end())
			return false;
	return true;
}

int main() {
	int v;
	cin >> N >> M;
	for (int i = 1; N >= i; ++i)
		cin >> w[i];
	for (int i = 2; N >= i; ++i) {
		cin >> v;
		vis[v] = true;
		p[v].push_back(i);
	}
	set<int> S;
	int m = 0;
	for (int i = 1; N >= i; ++i) {
		if (!vis[i]) {
			S.insert(i);
			m += w[i];
		}
	}
	int Mm = m;
	for (int i = 1; N >= i; ++i) {
		if (vis[i] and Es(S, i)) {
			S.insert(i);
			m += w[i];
			if (m > M)
				break;
			if (Mm < m)
				Mm = m;
			for (int j:p[i]){
				S.erase(j);
				m-=w[j];
			}
			vis[i] = false;
			i = 1;
		}
	}
	if (M < m)
		cout << "OOM";
	else
		cout << Mm;
}

Submission Info

Submission Time
Task A - Mobilint Tensor Scheduling (REGULUS)
User auaahks
Language C++23 (GCC 15.2.0)
Score 100
Code Size 872 Byte
Status AC
Exec Time 206 ms
Memory 3892 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status AC
AC × 70
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 1 ms 3488 KiB
02 AC 1 ms 3444 KiB
03 AC 1 ms 3440 KiB
04 AC 1 ms 3384 KiB
05 AC 1 ms 3388 KiB
06 AC 1 ms 3564 KiB
07 AC 1 ms 3448 KiB
08 AC 1 ms 3444 KiB
09 AC 1 ms 3412 KiB
10 AC 1 ms 3408 KiB
11 AC 1 ms 3388 KiB
12 AC 1 ms 3412 KiB
13 AC 1 ms 3432 KiB
14 AC 1 ms 3332 KiB
15 AC 1 ms 3388 KiB
16 AC 1 ms 3408 KiB
17 AC 1 ms 3504 KiB
18 AC 1 ms 3444 KiB
19 AC 1 ms 3508 KiB
20 AC 1 ms 3408 KiB
21 AC 1 ms 3388 KiB
22 AC 1 ms 3508 KiB
23 AC 1 ms 3508 KiB
24 AC 1 ms 3472 KiB
25 AC 1 ms 3564 KiB
26 AC 1 ms 3448 KiB
27 AC 1 ms 3448 KiB
28 AC 1 ms 3292 KiB
29 AC 1 ms 3408 KiB
30 AC 1 ms 3292 KiB
31 AC 1 ms 3508 KiB
32 AC 1 ms 3548 KiB
33 AC 1 ms 3360 KiB
34 AC 1 ms 3444 KiB
35 AC 1 ms 3504 KiB
36 AC 1 ms 3356 KiB
37 AC 1 ms 3516 KiB
38 AC 2 ms 3600 KiB
39 AC 1 ms 3516 KiB
40 AC 1 ms 3540 KiB
41 AC 1 ms 3516 KiB
42 AC 2 ms 3420 KiB
43 AC 1 ms 3536 KiB
44 AC 1 ms 3512 KiB
45 AC 3 ms 3572 KiB
46 AC 4 ms 3516 KiB
47 AC 3 ms 3572 KiB
48 AC 1 ms 3600 KiB
49 AC 7 ms 3572 KiB
50 AC 7 ms 3692 KiB
51 AC 1 ms 3600 KiB
52 AC 8 ms 3420 KiB
53 AC 22 ms 3624 KiB
54 AC 8 ms 3600 KiB
55 AC 1 ms 3496 KiB
56 AC 17 ms 3764 KiB
57 AC 46 ms 3668 KiB
58 AC 9 ms 3764 KiB
59 AC 33 ms 3588 KiB
60 AC 117 ms 3640 KiB
61 AC 79 ms 3644 KiB
62 AC 2 ms 3588 KiB
63 AC 51 ms 3892 KiB
64 AC 51 ms 3768 KiB
65 AC 151 ms 3856 KiB
66 AC 206 ms 3724 KiB
67 AC 200 ms 3832 KiB
68 AC 62 ms 3828 KiB
69 AC 3 ms 3832 KiB
70 AC 2 ms 3656 KiB