CSES - APIO 2014 - Results
Submission details
Task:Beads and wires
Sender:Yytsi
Submission time:2019-03-24 19:12:58 +0200
Language:C++
Status:READY
Result:28
Feedback
groupverdictscore
#1ACCEPTED13
#2ACCEPTED15
#30
#40
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2, 3, 4details
#2ACCEPTED0.02 s1, 2, 3, 4details
#3ACCEPTED0.02 s1, 2, 3, 4details
#4ACCEPTED0.02 s1, 2, 3, 4details
#5ACCEPTED0.03 s1, 2, 3, 4details
#6ACCEPTED0.02 s1, 2, 3, 4details
#7ACCEPTED0.02 s1, 2, 3, 4details
#8ACCEPTED0.02 s1, 2, 3, 4details
#9ACCEPTED0.02 s1, 2, 3, 4details
#10ACCEPTED0.01 s1, 2, 3, 4details
#11ACCEPTED0.01 s1, 2, 3, 4details
#12ACCEPTED0.01 s1, 2, 3, 4details
#13ACCEPTED0.01 s2, 3, 4details
#14ACCEPTED0.01 s2, 3, 4details
#15ACCEPTED0.01 s2, 3, 4details
#16ACCEPTED0.03 s2, 3, 4details
#17ACCEPTED0.01 s2, 3, 4details
#18ACCEPTED0.03 s2, 3, 4details
#19ACCEPTED0.01 s2, 3, 4details
#20ACCEPTED0.02 s2, 3, 4details
#21ACCEPTED0.03 s2, 3, 4details
#22ACCEPTED0.02 s2, 3, 4details
#23ACCEPTED0.69 s3, 4details
#24ACCEPTED0.71 s3, 4details
#25ACCEPTED0.68 s3, 4details
#26--3, 4details
#27--3, 4details
#28--3, 4details
#29--3, 4details
#30--3, 4details
#31--3, 4details
#320.02 s4details
#330.03 s4details
#340.02 s4details
#350.02 s4details
#360.02 s4details
#370.02 s4details
#380.02 s4details
#390.02 s4details
#400.01 s4details
#410.01 s4details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:3:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define FOR(i, a, b) for (int i=a; i<(b); i++)
                                     ^
input/code.cpp:36:5: note: in expansion of macro 'FOR'
     FOR(j,0,p.size()) {
     ^~~
input/code.cpp:3:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define FOR(i, a, b) for (int i=a; i<(b); i++)
                                     ^
input/code.cpp:42:7: note: in expansion of macro 'FOR'
       FOR(i,0,adj[c].size()) {
       ^~~

Code

#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define IO ios_base::sync_with_stdio(0); cin.tie(0)
#define F first
#define S second
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;

#define N 11000
vector<pii> adj[N];
int n;
int dp[N][2];
int r[N];

int main() {
  IO; cin>>n;
  FOR(i,0,n-1) {
    int a,b,w; cin>>a>>b>>w;
    adj[a].pb({b, w});
    adj[b].pb({a, w});
  }

  int res = 0, ans=0;
  FOR(x,1,n+1) {
    if (adj[x].size() != 1) continue; // not leaf
    int sm = 0, cost = 0;
    vector<int> p;
    FOR(i,1,n+1) {
      r[i] = adj[i].size();
      if (i != x) r[i]--;
      if (r[i] == 0) p.pb(i);
    }

    FOR(j,0,p.size()) {
      int c = p[j];
      dp[c][0] = dp[c][1] = 0;
      // reset
      ans = -1e7;
      sm = 0;
      FOR(i,0,adj[c].size()) {
        int u = adj[c][i].F;
        int w = adj[c][i].S;
        if (r[u] == 0) {
          sm += max(dp[u][0], dp[u][1]);
          ans = max(ans, dp[u][1] + w - max(dp[u][0], dp[u][1]));
          continue;
        }

        cost = w;
        if (--r[u] == 0) p.pb(u);
      }

      // dp choices
      dp[c][0] = (sm + cost) + ans;
      dp[c][1] = sm;
    }
    res = max(res, dp[x][1]);
  }

  cout<<res<<"\n";
}

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:

input
10000
2751 6467 4918
3158 3563 4945
3261 6833 4929
2955 6313 4923
...

correct output
40189502

user output
(empty)

Test 27

Group: 3, 4

Verdict:

input
10000
2180 7493 4923
5745 9205 4949
446 7909 4938
2787 8203 4921
...

correct output
40070133

user output
(empty)

Test 28

Group: 3, 4

Verdict:

input
10000
3748 4584 4926
3748 7419 4990
1194 3748 4924
3748 6181 4996
...

correct output
3991669

user output
(empty)

Test 29

Group: 3, 4

Verdict:

input
10000
1070 4104 4988
2982 3086 4963
7216 8547 4971
1070 7973 4941
...

correct output
29901

user output
(empty)

Test 30

Group: 3, 4

Verdict:

input
10000
7902 8933 4901
3764 6085 4995
1621 3537 4934
4050 8356 4996
...

correct output
8971361

user output
(empty)

Test 31

Group: 3, 4

Verdict:

input
10000
3309 7441 4960
5499 9949 4978
339 5089 4928
4076 7951 4916
...

correct output
29562255

user output
(empty)

Test 32

Group: 4

Verdict:

input
50000
22758 25880 990
917 25140 901
10537 30620 913
10368 14209 993
...

correct output
38479584

user output
(empty)

Test 33

Group: 4

Verdict:

input
50000
3238 13619 998
16363 38824 982
27886 39526 947
11705 35966 934
...

correct output
38503542

user output
(empty)

Test 34

Group: 4

Verdict:

input
50000
35799 44598 957
11590 25577 939
4784 35538 999
5004 9994 968
...

correct output
38465202

user output
(empty)

Test 35

Group: 4

Verdict:

input
200000
30736 178178 9996
90079 171554 9980
25124 79152 9901
54905 96160 9925
...

correct output
1605459774

user output
(empty)

Test 36

Group: 4

Verdict:

input
200000
108342 138357 9984
110960 113525 9938
41108 45029 9990
55734 141188 9963
...

correct output
1607393503

user output
(empty)

Test 37

Group: 4

Verdict:

input
200000
126722 130360 9943
89278 168087 9902
119299 167497 9901
53594 131583 9919
...

correct output
1606037984

user output
(empty)

Test 38

Group: 4

Verdict:

input
200000
164755 181587 9909
108623 181587 9979
322 181587 9974
181138 181587 9946
...

correct output
160485772

user output
(empty)

Test 39

Group: 4

Verdict:

input
200000
27257 170181 9998
27257 46336 9911
64710 109131 9958
47607 164375 9999
...

correct output
59979

user output
(empty)

Test 40

Group: 4

Verdict:

input
200000
100383 177661 9902
29890 102857 9905
4153 102857 9990
42390 177661 9901
...

correct output
360716635

user output
(empty)

Test 41

Group: 4

Verdict:

input
200000
122137 172111 9908
53871 122137 9978
85117 168845 9993
3821 9227 9906
...

correct output
1183642659

user output
(empty)