Task: | Beads and wires |
Sender: | ollpu |
Submission time: | 2019-03-23 16:32:12 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 13 |
#2 | ACCEPTED | 15 |
#3 | ACCEPTED | 29 |
#4 | ACCEPTED | 43 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
#2 | ACCEPTED | 0.04 s | 1, 2, 3, 4 | details |
#3 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#4 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#5 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#6 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#7 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
#8 | ACCEPTED | 0.02 s | 1, 2, 3, 4 | details |
#9 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#10 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#11 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#12 | ACCEPTED | 0.03 s | 1, 2, 3, 4 | details |
#13 | ACCEPTED | 0.02 s | 2, 3, 4 | details |
#14 | ACCEPTED | 0.03 s | 2, 3, 4 | details |
#15 | ACCEPTED | 0.02 s | 2, 3, 4 | details |
#16 | ACCEPTED | 0.03 s | 2, 3, 4 | details |
#17 | ACCEPTED | 0.02 s | 2, 3, 4 | details |
#18 | ACCEPTED | 0.04 s | 2, 3, 4 | details |
#19 | ACCEPTED | 0.03 s | 2, 3, 4 | details |
#20 | ACCEPTED | 0.03 s | 2, 3, 4 | details |
#21 | ACCEPTED | 0.02 s | 2, 3, 4 | details |
#22 | ACCEPTED | 0.01 s | 2, 3, 4 | details |
#23 | ACCEPTED | 0.03 s | 3, 4 | details |
#24 | ACCEPTED | 0.02 s | 3, 4 | details |
#25 | ACCEPTED | 0.03 s | 3, 4 | details |
#26 | ACCEPTED | 0.03 s | 3, 4 | details |
#27 | ACCEPTED | 0.03 s | 3, 4 | details |
#28 | ACCEPTED | 0.03 s | 3, 4 | details |
#29 | ACCEPTED | 0.04 s | 3, 4 | details |
#30 | ACCEPTED | 0.04 s | 3, 4 | details |
#31 | ACCEPTED | 0.03 s | 3, 4 | details |
#32 | ACCEPTED | 0.07 s | 4 | details |
#33 | ACCEPTED | 0.07 s | 4 | details |
#34 | ACCEPTED | 0.06 s | 4 | details |
#35 | ACCEPTED | 0.20 s | 4 | details |
#36 | ACCEPTED | 0.21 s | 4 | details |
#37 | ACCEPTED | 0.20 s | 4 | details |
#38 | ACCEPTED | 0.15 s | 4 | details |
#39 | ACCEPTED | 0.15 s | 4 | details |
#40 | ACCEPTED | 0.16 s | 4 | details |
#41 | ACCEPTED | 0.19 s | 4 | details |
Code
#include <bits/stdc++.h> using namespace std; #define F first #define S second const int INF = 2.1e9; vector<pair<int, int>> v[201010]; int dp[201010][2][2]; void h(int i=0, int p=-1, int w=-INF) { for (auto pr : v[i]) { if (pr.F == p) continue; h(pr.F, i, pr.S); } int bs = 0; int op = 0; pair<int, int> ac2[2][2] = {{{-INF, -1}, {-INF, -1}}, {{-INF, -1}, {-INF, -1}}}; for (auto pr : v[i]) { if (pr.F == p) continue; int bav = dp[pr.F][0][0]; bs += bav; op = max(op, dp[pr.F][0][1]-bav); for (int x : {0, 1}) { pair<int, int> oo {dp[pr.F][1][x]-bav, pr.F}; if (oo > ac2[x][0]) { swap(ac2[x][0], ac2[x][1]); ac2[x][0] = oo; } else if (oo > ac2[x][1]) { ac2[x][1] = oo; } } } dp[i][0][0] = bs; dp[i][0][1] = bs+op; dp[i][1][0] = bs+w; dp[i][1][1] = bs+op+w; if (w != -INF) { if (ac2[0][0].F != -INF) { dp[i][0][0] = max(dp[i][0][0], bs+ac2[0][0].F+w); dp[i][0][1] = max(dp[i][0][1], bs+ac2[0][0].F+w); } if (ac2[1][0].F != -INF) { dp[i][0][1] = max(dp[i][0][1], bs+ac2[1][0].F+w); } } for (int j = 0; j < 2; ++j) { for (int x : {0, 1}) { for (int k = 0; k < 2; ++k) { if (ac2[0][j].S == ac2[x][k].S) continue; dp[i][0][1] = max(dp[i][0][1], bs+ac2[0][j].F+ac2[x][k].F); dp[i][1][1] = max(dp[i][1][1], bs+ac2[0][j].F+ac2[x][k].F+w); } } } } int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 0; i < n-1; ++i) { int a, b, c; cin >> a >> b >> c; a--; b--; v[a].emplace_back(b, c); v[b].emplace_back(a, c); } h(); cout << max(dp[0][0][0], dp[0][0][1]) << endl; }
Test details
Test 1
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
5
1 2 10 1 3 40 1 4 15 1 5 20 |
correct output |
---|
60 |
user output |
---|
60 |
Test 2
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10
4 10 2 1 2 21 1 3 13 6 7 1 ... |
correct output |
---|
140 |
user output |
---|
140 |
Test 3
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 4 10 5 1 10 7 3 10 10 3 9 10 ... |
correct output |
---|
61 |
user output |
---|
61 |
Test 4
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 7 10 1 2 7 3 6 7 5 1 9 5 ... |
correct output |
---|
30 |
user output |
---|
30 |
Test 5
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 3 10 6 3 7 6 8 9 3 1 5 1 ... |
correct output |
---|
44 |
user output |
---|
44 |
Test 6
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 5 6 9 2 3 5 1 10 8 4 5 9 ... |
correct output |
---|
62 |
user output |
---|
62 |
Test 7
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 2 3 7 6 9 7 2 10 6 4 9 2 ... |
correct output |
---|
41 |
user output |
---|
41 |
Test 8
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 7 9 1 3 5 9 1 6 3 5 9 3 ... |
correct output |
---|
53 |
user output |
---|
53 |
Test 9
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 3 6 9 2 5 5 2 4 1 4 9 2 ... |
correct output |
---|
43 |
user output |
---|
43 |
Test 10
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 2 3 4 4 8 9 1 8 2 2 4 6 ... |
correct output |
---|
39 |
user output |
---|
39 |
Test 11
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 1 8 4 2 3 7 3 10 4 2 4 7 ... |
correct output |
---|
48 |
user output |
---|
48 |
Test 12
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 8 9 7 2 3 8 2 6 5 2 9 1 ... |
correct output |
---|
35 |
user output |
---|
35 |
Test 13
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
100 48 93 4 12 87 1 27 72 10 3 43 2 ... |
correct output |
---|
441 |
user output |
---|
441 |
Test 14
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
100 38 97 8 26 29 9 62 73 7 13 62 8 ... |
correct output |
---|
498 |
user output |
---|
498 |
Test 15
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
100 13 54 5 7 94 5 9 39 7 52 53 8 ... |
correct output |
---|
460 |
user output |
---|
460 |
Test 16
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 147 182 33 101 186 14 7 66 10 73 180 33 ... |
correct output |
---|
4537 |
user output |
---|
4537 |
Test 17
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 33 93 17 63 114 24 19 93 42 151 168 9 ... |
correct output |
---|
4605 |
user output |
---|
4605 |
Test 18
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 25 94 45 143 166 19 24 103 16 133 200 43 ... |
correct output |
---|
4695 |
user output |
---|
4695 |
Test 19
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 74 191 24 74 171 19 2 74 50 27 74 42 ... |
correct output |
---|
546 |
user output |
---|
546 |
Test 20
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 98 200 12 12 87 47 19 98 31 9 87 14 ... |
correct output |
---|
233 |
user output |
---|
233 |
Test 21
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 47 130 8 25 47 15 47 172 33 6 47 45 ... |
correct output |
---|
1202 |
user output |
---|
1202 |
Test 22
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
200 56 174 43 28 56 22 26 112 21 56 119 44 ... |
correct output |
---|
3349 |
user output |
---|
3349 |
Test 23
Group: 3, 4
Verdict: ACCEPTED
input |
---|
5000 2198 4992 964 2521 2711 961 3408 4585 975 2746 3304 974 ... |
correct output |
---|
3848169 |
user output |
---|
3848169 |
Test 24
Group: 3, 4
Verdict: ACCEPTED
input |
---|
5000 1926 2920 933 565 1093 993 1894 4373 930 1713 3978 916 ... |
correct output |
---|
3789162 |
user output |
---|
3789162 |
Test 25
Group: 3, 4
Verdict: ACCEPTED
input |
---|
5000 2488 4286 905 898 3460 995 3342 4660 963 38 1300 971 ... |
correct output |
---|
3818444 |
user output |
---|
3818444 |
Test 26
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 2751 6467 4918 3158 3563 4945 3261 6833 4929 2955 6313 4923 ... |
correct output |
---|
40189502 |
user output |
---|
40189502 |
Test 27
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 2180 7493 4923 5745 9205 4949 446 7909 4938 2787 8203 4921 ... |
correct output |
---|
40070133 |
user output |
---|
40070133 |
Test 28
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 3748 4584 4926 3748 7419 4990 1194 3748 4924 3748 6181 4996 ... |
correct output |
---|
3991669 |
user output |
---|
3991669 |
Test 29
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 1070 4104 4988 2982 3086 4963 7216 8547 4971 1070 7973 4941 ... |
correct output |
---|
29901 |
user output |
---|
29901 |
Test 30
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 7902 8933 4901 3764 6085 4995 1621 3537 4934 4050 8356 4996 ... |
correct output |
---|
8971361 |
user output |
---|
8971361 |
Test 31
Group: 3, 4
Verdict: ACCEPTED
input |
---|
10000 3309 7441 4960 5499 9949 4978 339 5089 4928 4076 7951 4916 ... |
correct output |
---|
29562255 |
user output |
---|
29562255 |
Test 32
Group: 4
Verdict: ACCEPTED
input |
---|
50000 22758 25880 990 917 25140 901 10537 30620 913 10368 14209 993 ... |
correct output |
---|
38479584 |
user output |
---|
38479584 |
Test 33
Group: 4
Verdict: ACCEPTED
input |
---|
50000 3238 13619 998 16363 38824 982 27886 39526 947 11705 35966 934 ... |
correct output |
---|
38503542 |
user output |
---|
38503542 |
Test 34
Group: 4
Verdict: ACCEPTED
input |
---|
50000 35799 44598 957 11590 25577 939 4784 35538 999 5004 9994 968 ... |
correct output |
---|
38465202 |
user output |
---|
38465202 |
Test 35
Group: 4
Verdict: ACCEPTED
input |
---|
200000 30736 178178 9996 90079 171554 9980 25124 79152 9901 54905 96160 9925 ... |
correct output |
---|
1605459774 |
user output |
---|
1605459774 |
Test 36
Group: 4
Verdict: ACCEPTED
input |
---|
200000 108342 138357 9984 110960 113525 9938 41108 45029 9990 55734 141188 9963 ... |
correct output |
---|
1607393503 |
user output |
---|
1607393503 |
Test 37
Group: 4
Verdict: ACCEPTED
input |
---|
200000 126722 130360 9943 89278 168087 9902 119299 167497 9901 53594 131583 9919 ... |
correct output |
---|
1606037984 |
user output |
---|
1606037984 |
Test 38
Group: 4
Verdict: ACCEPTED
input |
---|
200000 164755 181587 9909 108623 181587 9979 322 181587 9974 181138 181587 9946 ... |
correct output |
---|
160485772 |
user output |
---|
160485772 |
Test 39
Group: 4
Verdict: ACCEPTED
input |
---|
200000 27257 170181 9998 27257 46336 9911 64710 109131 9958 47607 164375 9999 ... |
correct output |
---|
59979 |
user output |
---|
59979 |
Test 40
Group: 4
Verdict: ACCEPTED
input |
---|
200000 100383 177661 9902 29890 102857 9905 4153 102857 9990 42390 177661 9901 ... |
correct output |
---|
360716635 |
user output |
---|
360716635 |
Test 41
Group: 4
Verdict: ACCEPTED
input |
---|
200000 122137 172111 9908 53871 122137 9978 85117 168845 9993 3821 9227 9906 ... |
correct output |
---|
1183642659 |
user output |
---|
1183642659 |