Task: | Tree game |
Sender: | bubu2006 |
Submission time: | 2024-10-07 16:54:14 +0300 |
Language: | C++ (C++20) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.01 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | ACCEPTED | 0.00 s | details |
#7 | ACCEPTED | 0.00 s | details |
#8 | ACCEPTED | 0.00 s | details |
#9 | ACCEPTED | 0.00 s | details |
#10 | ACCEPTED | 0.00 s | details |
#11 | ACCEPTED | 0.00 s | details |
#12 | ACCEPTED | 0.00 s | details |
#13 | ACCEPTED | 0.00 s | details |
#14 | ACCEPTED | 0.00 s | details |
#15 | ACCEPTED | 0.00 s | details |
#16 | ACCEPTED | 0.00 s | details |
#17 | ACCEPTED | 0.00 s | details |
#18 | ACCEPTED | 0.00 s | details |
#19 | ACCEPTED | 0.00 s | details |
#20 | ACCEPTED | 0.00 s | details |
#21 | ACCEPTED | 0.00 s | details |
#22 | ACCEPTED | 0.00 s | details |
#23 | ACCEPTED | 0.00 s | details |
#24 | ACCEPTED | 0.00 s | details |
#25 | ACCEPTED | 0.00 s | details |
#26 | ACCEPTED | 0.00 s | details |
#27 | ACCEPTED | 0.00 s | details |
#28 | ACCEPTED | 0.00 s | details |
#29 | ACCEPTED | 0.00 s | details |
#30 | ACCEPTED | 0.00 s | details |
#31 | ACCEPTED | 0.00 s | details |
#32 | ACCEPTED | 0.00 s | details |
#33 | ACCEPTED | 0.00 s | details |
#34 | ACCEPTED | 0.00 s | details |
#35 | ACCEPTED | 0.00 s | details |
#36 | ACCEPTED | 0.00 s | details |
#37 | ACCEPTED | 0.00 s | details |
#38 | ACCEPTED | 0.00 s | details |
#39 | ACCEPTED | 0.00 s | details |
#40 | ACCEPTED | 0.00 s | details |
#41 | ACCEPTED | 0.00 s | details |
#42 | ACCEPTED | 0.00 s | details |
#43 | ACCEPTED | 0.00 s | details |
#44 | ACCEPTED | 0.00 s | details |
#45 | ACCEPTED | 0.00 s | details |
#46 | ACCEPTED | 0.00 s | details |
#47 | ACCEPTED | 0.00 s | details |
#48 | ACCEPTED | 0.00 s | details |
#49 | ACCEPTED | 0.00 s | details |
#50 | ACCEPTED | 0.00 s | details |
#51 | ACCEPTED | 0.00 s | details |
#52 | ACCEPTED | 0.00 s | details |
#53 | ACCEPTED | 0.00 s | details |
#54 | ACCEPTED | 0.00 s | details |
#55 | ACCEPTED | 0.00 s | details |
#56 | ACCEPTED | 0.00 s | details |
#57 | ACCEPTED | 0.00 s | details |
#58 | ACCEPTED | 0.00 s | details |
#59 | ACCEPTED | 0.00 s | details |
#60 | ACCEPTED | 0.08 s | details |
#61 | ACCEPTED | 0.06 s | details |
#62 | ACCEPTED | 0.06 s | details |
#63 | ACCEPTED | 0.05 s | details |
#64 | ACCEPTED | 0.06 s | details |
#65 | ACCEPTED | 0.06 s | details |
#66 | ACCEPTED | 0.07 s | details |
#67 | ACCEPTED | 0.06 s | details |
#68 | ACCEPTED | 0.05 s | details |
#69 | ACCEPTED | 0.06 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:57:20: warning: statement has no effect [-Wunused-value] 57 | #define debug(...) 42 | ^~ input/code.cpp:93:9: note: in expansion of macro 'debug' 93 | debug(i, adj[i]); | ^~~~~
Code
#include <bits/stdc++.h> using namespace std; #define int long long #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; string to_string(string s) { return '"' + s + '"'; } string to_string(const char* s) { return to_string((string) s); } string to_string(bool b) { return (b ? "true" : "false"); } template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; } template <typename A> string to_string(A v) { bool first = true; string res = "{"; for (const auto &x : v) { if (!first) { res += ", "; } first = false; res += to_string(x); } res += "}"; return res; } void debug_out() { cerr << endl; } template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { cerr << " " << to_string(H); debug_out(T...); } #ifdef LOCAL #define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__) #else #define debug(...) 42 #endif int n; vi a, p, mem; vector<vi> adj; int dp(int u) { int& ans = mem[u]; if (ans != -1) return ans; ans = a[u]; vi res; for (int v : adj[u]) { res.push_back(dp(v)); } sort(all(res)); if (sz(res)) res.pop_back(); if (sz(res)) ans += res.back(); return ans; }; signed main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); // RTE if input wrong datatype cin >> n; a.resize(n), p.resize(n), adj.resize(n); rep(i, 0, n) cin >> a[i]; rep(i, 0, n) { cin >> p[i]; p[i]--; if (i) adj[p[i]].push_back(i); } rep(i, 0, n) { debug(i, adj[i]); } mem.resize(n, -1); cout << dp(0) << '\n'; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
1 8 1 |
correct output |
---|
8 |
user output |
---|
8 |
Test 2
Verdict: ACCEPTED
input |
---|
2 8 8 1 1 |
correct output |
---|
8 |
user output |
---|
8 |
Test 3
Verdict: ACCEPTED
input |
---|
3 3 1 6 1 3 1 |
correct output |
---|
3 |
user output |
---|
3 |
Test 4
Verdict: ACCEPTED
input |
---|
3 5 8 4 1 1 2 |
correct output |
---|
5 |
user output |
---|
5 |
Test 5
Verdict: ACCEPTED
input |
---|
3 8 8 3 1 1 1 |
correct output |
---|
11 |
user output |
---|
11 |
Test 6
Verdict: ACCEPTED
input |
---|
4 9 8 1 6 1 1 2 2 |
correct output |
---|
9 |
user output |
---|
9 |
Test 7
Verdict: ACCEPTED
input |
---|
4 10 1 4 3 1 1 1 2 |
correct output |
---|
11 |
user output |
---|
11 |
Test 8
Verdict: ACCEPTED
input |
---|
4 9 10 2 6 1 4 1 1 |
correct output |
---|
11 |
user output |
---|
11 |
Test 9
Verdict: ACCEPTED
input |
---|
4 7 4 9 2 1 1 1 3 |
correct output |
---|
11 |
user output |
---|
11 |
Test 10
Verdict: ACCEPTED
input |
---|
5 9 5 7 7 4 1 1 4 2 4 |
correct output |
---|
9 |
user output |
---|
9 |
Test 11
Verdict: ACCEPTED
input |
---|
5 10 2 3 1 4 1 1 1 1 3 |
correct output |
---|
12 |
user output |
---|
12 |
Test 12
Verdict: ACCEPTED
input |
---|
5 5 5 4 4 2 1 4 4 1 2 |
correct output |
---|
5 |
user output |
---|
5 |
Test 13
Verdict: ACCEPTED
input |
---|
5 6 9 5 9 1 1 1 1 3 1 |
correct output |
---|
11 |
user output |
---|
11 |
Test 14
Verdict: ACCEPTED
input |
---|
5 7 7 6 3 2 1 1 2 3 3 |
correct output |
---|
7 |
user output |
---|
7 |
Test 15
Verdict: ACCEPTED
input |
---|
5 10 5 1 7 4 1 1 5 3 1 |
correct output |
---|
14 |
user output |
---|
14 |
Test 16
Verdict: ACCEPTED
input |
---|
5 4 2 10 6 1 1 1 2 1 1 |
correct output |
---|
6 |
user output |
---|
6 |
Test 17
Verdict: ACCEPTED
input |
---|
5 5 10 4 6 3 1 1 2 1 2 |
correct output |
---|
11 |
user output |
---|
11 |
Test 18
Verdict: ACCEPTED
input |
---|
5 9 3 5 1 7 1 5 5 3 1 |
correct output |
---|
9 |
user output |
---|
9 |
Test 19
Verdict: ACCEPTED
input |
---|
5 4 2 1 3 9 1 1 1 1 1 |
correct output |
---|
7 |
user output |
---|
7 |
Test 20
Verdict: ACCEPTED
input |
---|
10 9 1 10 3 4 5 8 9 6 5 1 4 2 1 7 4 8 6 7 8 |
correct output |
---|
9 |
user output |
---|
9 |
Test 21
Verdict: ACCEPTED
input |
---|
10 4 7 4 10 6 9 5 4 7 6 1 1 1 2 1 1 8 2 3 3 |
correct output |
---|
14 |
user output |
---|
14 |
Test 22
Verdict: ACCEPTED
input |
---|
10 7 2 3 5 3 7 7 9 6 7 1 8 2 7 8 7 1 1 6 7 |
correct output |
---|
18 |
user output |
---|
18 |
Test 23
Verdict: ACCEPTED
input |
---|
10 3 3 1 1 5 7 1 2 5 5 1 5 7 2 1 5 8 5 1 1 |
correct output |
---|
8 |
user output |
---|
8 |
Test 24
Verdict: ACCEPTED
input |
---|
10 1 7 3 10 5 7 8 1 2 6 1 1 1 2 9 2 9 3 2 9 |
correct output |
---|
4 |
user output |
---|
4 |
Test 25
Verdict: ACCEPTED
input |
---|
10 6 5 3 10 2 9 1 7 8 9 1 8 5 1 1 10 2 5 8 2 |
correct output |
---|
11 |
user output |
---|
11 |
Test 26
Verdict: ACCEPTED
input |
---|
10 5 6 4 5 7 9 5 8 8 4 1 1 4 2 6 1 6 5 1 1 |
correct output |
---|
13 |
user output |
---|
13 |
Test 27
Verdict: ACCEPTED
input |
---|
10 1 5 3 1 5 6 7 9 9 4 1 5 10 9 1 9 9 4 5 5 |
correct output |
---|
1 |
user output |
---|
1 |
Test 28
Verdict: ACCEPTED
input |
---|
10 5 5 6 9 5 10 6 2 6 8 1 1 4 9 9 1 2 1 6 8 |
correct output |
---|
10 |
user output |
---|
10 |
Test 29
Verdict: ACCEPTED
input |
---|
10 3 2 1 4 4 5 2 4 9 4 1 5 1 2 1 1 3 1 1 9 |
correct output |
---|
8 |
user output |
---|
8 |
Test 30
Verdict: ACCEPTED
input |
---|
100 21461600 42077569 474283491 30... |
correct output |
---|
966865392 |
user output |
---|
966865392 |
Test 31
Verdict: ACCEPTED
input |
---|
100 578129114 177547714 700400588 ... |
correct output |
---|
1855515684 |
user output |
---|
1855515684 |
Test 32
Verdict: ACCEPTED
input |
---|
100 994871996 791076134 5953277 40... |
correct output |
---|
1814515836 |
user output |
---|
1814515836 |
Test 33
Verdict: ACCEPTED
input |
---|
100 222228197 71907871 993998009 7... |
correct output |
---|
1135951805 |
user output |
---|
1135951805 |
Test 34
Verdict: ACCEPTED
input |
---|
100 579900832 174882180 138713252 ... |
correct output |
---|
716202927 |
user output |
---|
716202927 |
Test 35
Verdict: ACCEPTED
input |
---|
100 189754281 378059061 342381828 ... |
correct output |
---|
1551273774 |
user output |
---|
1551273774 |
Test 36
Verdict: ACCEPTED
input |
---|
100 915344 434975452 466660908 159... |
correct output |
---|
907612293 |
user output |
---|
907612293 |
Test 37
Verdict: ACCEPTED
input |
---|
100 857806942 521650866 432061350 ... |
correct output |
---|
2316691892 |
user output |
---|
2316691892 |
Test 38
Verdict: ACCEPTED
input |
---|
100 126184681 630426411 840357157 ... |
correct output |
---|
126184681 |
user output |
---|
126184681 |
Test 39
Verdict: ACCEPTED
input |
---|
100 877496128 782849725 556141400 ... |
correct output |
---|
2248009755 |
user output |
---|
2248009755 |
Test 40
Verdict: ACCEPTED
input |
---|
200 903167338 160468896 971358120 ... |
correct output |
---|
2615788195 |
user output |
---|
2615788195 |
Test 41
Verdict: ACCEPTED
input |
---|
200 139339061 77281799 316066077 3... |
correct output |
---|
729411647 |
user output |
---|
729411647 |
Test 42
Verdict: ACCEPTED
input |
---|
200 19617302 94019529 17298266 328... |
correct output |
---|
983806343 |
user output |
---|
983806343 |
Test 43
Verdict: ACCEPTED
input |
---|
200 578170987 336960706 697473976 ... |
correct output |
---|
1901938137 |
user output |
---|
1901938137 |
Test 44
Verdict: ACCEPTED
input |
---|
200 956690801 79083637 339599313 1... |
correct output |
---|
1857249559 |
user output |
---|
1857249559 |
Test 45
Verdict: ACCEPTED
input |
---|
200 185716349 143762158 115416001 ... |
correct output |
---|
1057534782 |
user output |
---|
1057534782 |
Test 46
Verdict: ACCEPTED
input |
---|
200 275288896 20815354 254338864 6... |
correct output |
---|
1267445164 |
user output |
---|
1267445164 |
Test 47
Verdict: ACCEPTED
input |
---|
200 24900465 555962124 563413635 3... |
correct output |
---|
747057370 |
user output |
---|
747057370 |
Test 48
Verdict: ACCEPTED
input |
---|
200 513524772 254574588 366558027 ... |
correct output |
---|
2272884295 |
user output |
---|
2272884295 |
Test 49
Verdict: ACCEPTED
input |
---|
200 490774594 733870697 844510835 ... |
correct output |
---|
1650288517 |
user output |
---|
1650288517 |
Test 50
Verdict: ACCEPTED
input |
---|
1000 861884121 322555995 898039039 ... |
correct output |
---|
2972059986 |
user output |
---|
2972059986 |
Test 51
Verdict: ACCEPTED
input |
---|
1000 659913933 513100418 571680180 ... |
correct output |
---|
659913933 |
user output |
---|
659913933 |
Test 52
Verdict: ACCEPTED
input |
---|
1000 209874718 348676066 464074417 ... |
correct output |
---|
899398937 |
user output |
---|
899398937 |
Test 53
Verdict: ACCEPTED
input |
---|
1000 645792798 158522181 659799184 ... |
correct output |
---|
2154979899 |
user output |
---|
2154979899 |
Test 54
Verdict: ACCEPTED
input |
---|
1000 859348061 421675209 599301462 ... |
correct output |
---|
2387245650 |
user output |
---|
2387245650 |
Test 55
Verdict: ACCEPTED
input |
---|
1000 226879800 528482225 208763773 ... |
correct output |
---|
1424568237 |
user output |
---|
1424568237 |
Test 56
Verdict: ACCEPTED
input |
---|
1000 233113004 975537019 524093912 ... |
correct output |
---|
1182124106 |
user output |
---|
1182124106 |
Test 57
Verdict: ACCEPTED
input |
---|
1000 874049734 75947226 679836952 6... |
correct output |
---|
2874667578 |
user output |
---|
2874667578 |
Test 58
Verdict: ACCEPTED
input |
---|
1000 136403860 348337953 506386641 ... |
correct output |
---|
136403860 |
user output |
---|
136403860 |
Test 59
Verdict: ACCEPTED
input |
---|
1000 824089343 410028787 814008876 ... |
correct output |
---|
1778275291 |
user output |
---|
1778275291 |
Test 60
Verdict: ACCEPTED
input |
---|
100000 106979616 574727912 291579092 ... |
correct output |
---|
3411435693 |
user output |
---|
3411435693 |
Test 61
Verdict: ACCEPTED
input |
---|
100000 834972396 341945130 512367317 ... |
correct output |
---|
1494272515 |
user output |
---|
1494272515 |
Test 62
Verdict: ACCEPTED
input |
---|
100000 964109644 356056141 521072685 ... |
correct output |
---|
1283227450 |
user output |
---|
1283227450 |
Test 63
Verdict: ACCEPTED
input |
---|
100000 779580014 612148564 793692717 ... |
correct output |
---|
4717954657 |
user output |
---|
4717954657 |
Test 64
Verdict: ACCEPTED
input |
---|
100000 124576659 286156851 307400435 ... |
correct output |
---|
124576659 |
user output |
---|
124576659 |
Test 65
Verdict: ACCEPTED
input |
---|
100000 452020023 593221033 326082759 ... |
correct output |
---|
1178920108 |
user output |
---|
1178920108 |
Test 66
Verdict: ACCEPTED
input |
---|
100000 378587281 1836202 116838722 72... |
correct output |
---|
587215770 |
user output |
---|
587215770 |
Test 67
Verdict: ACCEPTED
input |
---|
100000 877997603 741843452 187099247 ... |
correct output |
---|
1018714881 |
user output |
---|
1018714881 |
Test 68
Verdict: ACCEPTED
input |
---|
100000 280774790 48087557 668312713 4... |
correct output |
---|
3930265099 |
user output |
---|
3930265099 |
Test 69
Verdict: ACCEPTED
input |
---|
100000 866596482 430317267 394041807 ... |
correct output |
---|
1639137122 |
user output |
---|
1639137122 |