| 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 |
