CSES - IZhO 2017, day 1 - Results
Submission details
Task:Money
Sender:ollpu
Submission time:2019-02-03 12:01:11 +0200
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED9
#2ACCEPTED16
#3ACCEPTED20
#4ACCEPTED55
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1details
#2ACCEPTED0.02 s1details
#3ACCEPTED0.02 s1details
#4ACCEPTED0.02 s1details
#5ACCEPTED0.02 s1details
#6ACCEPTED0.01 s1details
#7ACCEPTED0.02 s1details
#8ACCEPTED0.02 s1details
#9ACCEPTED0.01 s1details
#10ACCEPTED0.01 s1details
#11ACCEPTED0.02 s1details
#12ACCEPTED0.04 s1details
#13ACCEPTED0.01 s1details
#14ACCEPTED0.03 s1details
#15ACCEPTED0.01 s1details
#16ACCEPTED0.02 s1details
#17ACCEPTED0.03 s2details
#18ACCEPTED0.03 s2details
#19ACCEPTED0.03 s2details
#20ACCEPTED0.02 s2details
#21ACCEPTED0.02 s2details
#22ACCEPTED0.02 s2details
#23ACCEPTED0.02 s2details
#24ACCEPTED0.01 s2details
#25ACCEPTED0.03 s2details
#26ACCEPTED0.01 s2details
#27ACCEPTED0.03 s3details
#28ACCEPTED0.03 s3details
#29ACCEPTED0.02 s3details
#30ACCEPTED0.02 s3details
#31ACCEPTED0.01 s3details
#32ACCEPTED0.02 s3details
#33ACCEPTED0.01 s3details
#34ACCEPTED0.02 s3details
#35ACCEPTED0.02 s3details
#36ACCEPTED0.02 s3details
#37ACCEPTED0.02 s3details
#38ACCEPTED0.01 s3details
#39ACCEPTED0.15 s4details
#40ACCEPTED0.27 s4details
#41ACCEPTED0.13 s4details
#42ACCEPTED0.13 s4details
#43ACCEPTED0.10 s4details
#44ACCEPTED0.32 s4details
#45ACCEPTED0.31 s4details
#46ACCEPTED0.31 s4details
#47ACCEPTED0.25 s4details
#48ACCEPTED0.28 s4details
#49ACCEPTED0.77 s4details
#50ACCEPTED0.78 s4details
#51ACCEPTED0.79 s4details
#52ACCEPTED0.77 s4details
#53ACCEPTED0.78 s4details
#54ACCEPTED0.76 s4details
#55ACCEPTED1.37 s4details
#56ACCEPTED1.40 s4details
#57ACCEPTED1.38 s4details
#58ACCEPTED1.40 s4details
#59ACCEPTED1.38 s4details
#60ACCEPTED1.38 s4details
#61ACCEPTED1.39 s4details
#62ACCEPTED1.40 s4details

Code

#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  int t[n], lc[n];
  for (int i = 0; i < n; ++i) cin >> t[i];
  lc[n-1] = 1;
  for (int i = n-2; i >= 0; --i) {
    if (t[i] <= t[i+1]) lc[i] = lc[i+1]+1;
    else lc[i] = 1;
  }
  set<int> x;
  map<int, int> cst;
  cst[0] = 1;
  vector<int> rmcst[n+1];
  rmcst[0].push_back(0);
  x.insert(2e9);
  for (int i = 0; i < n; ++i) {
    int mx = *x.upper_bound(t[i]);
    int j = upper_bound(t+i, t+i+lc[i], mx)-t;
    int tcst = cst.begin()->first+1;
    cst[tcst]++;
    rmcst[j].push_back(tcst);
    
    x.insert(t[i]);
    for (int k : rmcst[i]) {
      if (!--cst[k]) cst.erase(k);
    }
  }
  cout << cst.begin()->first << endl;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
6
3 6 4 5 1 2

correct output
3

user output
3

Test 2

Group: 1

Verdict: ACCEPTED

input
6
1 3 5 2 4 6

correct output
4

user output
4

Test 3

Group: 1

Verdict: ACCEPTED

input
6
2 4 6 1 3 5

correct output
4

user output
4

Test 4

Group: 1

Verdict: ACCEPTED

input
6
2 3 2 3 2 3

correct output
3

user output
3

Test 5

Group: 1

Verdict: ACCEPTED

input
6
1 2 5 6 3 4

correct output
2

user output
2

Test 6

Group: 1

Verdict: ACCEPTED

input
6
1 2 5 3 4 6

correct output
3

user output
3

Test 7

Group: 1

Verdict: ACCEPTED

input
4
550483 550483 745079 243195

correct output
2

user output
2

Test 8

Group: 1

Verdict: ACCEPTED

input
8
718639 990890 718639 990890 99...

correct output
3

user output
3

Test 9

Group: 1

Verdict: ACCEPTED

input
6
75094 75094 75094 576383 16236...

correct output
3

user output
3

Test 10

Group: 1

Verdict: ACCEPTED

input
8
577594 541467 472059 277648 57...

correct output
7

user output
7

Test 11

Group: 1

Verdict: ACCEPTED

input
8
831697 182542 182542 246377 24...

correct output
4

user output
4

Test 12

Group: 1

Verdict: ACCEPTED

input
8
710010 388188 309143 388188 71...

correct output
6

user output
6

Test 13

Group: 1

Verdict: ACCEPTED

input
8
806776 806776 223756 806776 80...

correct output
2

user output
2

Test 14

Group: 1

Verdict: ACCEPTED

input
8
32911 32911 32911 32911 562837...

correct output
3

user output
3

Test 15

Group: 1

Verdict: ACCEPTED

input
8
997465 997465 968321 968321 39...

correct output
5

user output
5

Test 16

Group: 1

Verdict: ACCEPTED

input
8
468346 200735 468346 200735 88...

correct output
7

user output
7

Test 17

Group: 2

Verdict: ACCEPTED

input
15
179920 568853 179920 568853 84...

correct output
10

user output
10

Test 18

Group: 2

Verdict: ACCEPTED

input
14
626116 805032 60415 626116 388...

correct output
12

user output
12

Test 19

Group: 2

Verdict: ACCEPTED

input
10
494573 746756 237932 746756 81...

correct output
7

user output
7

Test 20

Group: 2

Verdict: ACCEPTED

input
20
371839 10893 10893 10893 98708...

correct output
11

user output
11

Test 21

Group: 2

Verdict: ACCEPTED

input
20
197220 303712 197220 389265 67...

correct output
13

user output
13

Test 22

Group: 2

Verdict: ACCEPTED

input
20
509271 509271 922019 509271 92...

correct output
6

user output
6

Test 23

Group: 2

Verdict: ACCEPTED

input
20
757151 645451 757151 757151 75...

correct output
8

user output
8

Test 24

Group: 2

Verdict: ACCEPTED

input
20
746146 385991 385991 350689 38...

correct output
11

user output
11

Test 25

Group: 2

Verdict: ACCEPTED

input
20
440622 720564 700447 459690 72...

correct output
16

user output
16

Test 26

Group: 2

Verdict: ACCEPTED

input
20
324662 468027 324662 324662 46...

correct output
14

user output
14

Test 27

Group: 3

Verdict: ACCEPTED

input
200
165 2 175 136 128 88 33 189 14...

correct output
196

user output
196

Test 28

Group: 3

Verdict: ACCEPTED

input
81
37 2 58 16 18 65 8 81 21 71 33...

correct output
77

user output
77

Test 29

Group: 3

Verdict: ACCEPTED

input
84
61 43 21 4 3 45 9 72 55 50 41 ...

correct output
80

user output
80

Test 30

Group: 3

Verdict: ACCEPTED

input
81
1 20 53 35 10 3 74 48 22 38 26...

correct output
77

user output
77

Test 31

Group: 3

Verdict: ACCEPTED

input
118
43 2 28 111 5 26 3 23 76 10 11...

correct output
110

user output
110

Test 32

Group: 3

Verdict: ACCEPTED

input
300
145507 564378 903068 564378 47...

correct output
214

user output
214

Test 33

Group: 3

Verdict: ACCEPTED

input
300
198887 496454 496454 176658 19...

correct output
180

user output
180

Test 34

Group: 3

Verdict: ACCEPTED

input
300
97004 968456 968456 968456 136...

correct output
217

user output
217

Test 35

Group: 3

Verdict: ACCEPTED

input
300
376675 480811 480811 480811 48...

correct output
78

user output
78

Test 36

Group: 3

Verdict: ACCEPTED

input
300
581370 581370 716169 581370 81...

correct output
179

user output
179

Test 37

Group: 3

Verdict: ACCEPTED

input
300
531046 550600 550600 401018 40...

correct output
258

user output
258

Test 38

Group: 3

Verdict: ACCEPTED

input
300
739447 739447 571323 571323 57...

correct output
221

user output
221

Test 39

Group: 4

Verdict: ACCEPTED

input
480481
806002 806002 621477 91785 917...

correct output
320287

user output
320287

Test 40

Group: 4

Verdict: ACCEPTED

input
788953
897530 211298 189842 844784 89...

correct output
658146

user output
658146

Test 41

Group: 4

Verdict: ACCEPTED

input
388796
806119 739351 66427 113886 113...

correct output
232110

user output
232110

Test 42

Group: 4

Verdict: ACCEPTED

input
343838
199431 288483 635849 288483 68...

correct output
297964

user output
297964

Test 43

Group: 4

Verdict: ACCEPTED

input
242351
818489 249811 887102 290660 88...

correct output
211988

user output
211988

Test 44

Group: 4

Verdict: ACCEPTED

input
1000000
738237 738237 893082 490298 43...

correct output
777569

user output
777569

Test 45

Group: 4

Verdict: ACCEPTED

input
1000000
74304 74304 74304 325602 71262...

correct output
714524

user output
714524

Test 46

Group: 4

Verdict: ACCEPTED

input
1000000
254366 875788 564327 564327 43...

correct output
777558

user output
777558

Test 47

Group: 4

Verdict: ACCEPTED

input
1000000
937517 114387 114387 114387 93...

correct output
249890

user output
249890

Test 48

Group: 4

Verdict: ACCEPTED

input
1000000
814027 682934 214670 214670 81...

correct output
500240

user output
500240

Test 49

Group: 4

Verdict: ACCEPTED

input
1000000
717896 297551 254872 297551 61...

correct output
833179

user output
833179

Test 50

Group: 4

Verdict: ACCEPTED

input
1000000
563974 664553 563974 609181 56...

correct output
750197

user output
750197

Test 51

Group: 4

Verdict: ACCEPTED

input
1000000
173690 978648 978648 978648 90...

correct output
874390

user output
874390

Test 52

Group: 4

Verdict: ACCEPTED

input
1000000
785890 785890 785890 785890 78...

correct output
750316

user output
750316

Test 53

Group: 4

Verdict: ACCEPTED

input
1000000
119439 119439 119439 354111 73...

correct output
798579

user output
798579

Test 54

Group: 4

Verdict: ACCEPTED

input
1000000
749078 95090 749078 276834 950...

correct output
750593

user output
750593

Test 55

Group: 4

Verdict: ACCEPTED

input
1000000
137937 689287 749751 213838 32...

correct output
981871

user output
981871

Test 56

Group: 4

Verdict: ACCEPTED

input
1000000
473653 274191 673488 575890 73...

correct output
981543

user output
981543

Test 57

Group: 4

Verdict: ACCEPTED

input
1000000
913583 648901 29748 168104 439...

correct output
981717

user output
981717

Test 58

Group: 4

Verdict: ACCEPTED

input
1000000
890981 682430 885587 406305 60...

correct output
981788

user output
981788

Test 59

Group: 4

Verdict: ACCEPTED

input
1000000
1 2 247847 4 767575 281751 982...

correct output
981660

user output
981660

Test 60

Group: 4

Verdict: ACCEPTED

input
1000000
285138 720188 820135 821835 91...

correct output
982003

user output
982003

Test 61

Group: 4

Verdict: ACCEPTED

input
1000000
421947 680547 224842 941720 26...

correct output
981663

user output
981663

Test 62

Group: 4

Verdict: ACCEPTED

input
1000000
963500 2 664028 4 692637 80284...

correct output
981624

user output
981624