Submission details
Task:Yellow Yacht
Sender:Pohjantahti
Submission time:2018-09-13 17:18:24 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.02 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.03 sdetails
#9ACCEPTED0.02 sdetails
#10ACCEPTED0.01 sdetails
#11ACCEPTED0.01 sdetails
#12ACCEPTED0.01 sdetails
#13ACCEPTED0.01 sdetails
#14ACCEPTED0.02 sdetails
#15ACCEPTED0.01 sdetails
#16ACCEPTED0.01 sdetails
#17ACCEPTED0.02 sdetails
#18ACCEPTED0.03 sdetails
#19ACCEPTED0.01 sdetails
#20ACCEPTED0.02 sdetails
#21ACCEPTED1.40 sdetails
#22ACCEPTED1.38 sdetails
#23ACCEPTED1.38 sdetails
#24ACCEPTED1.38 sdetails
#25ACCEPTED1.38 sdetails
#26ACCEPTED1.38 sdetails
#27ACCEPTED1.38 sdetails
#28ACCEPTED1.37 sdetails
#29ACCEPTED1.37 sdetails
#30ACCEPTED1.43 sdetails
#31ACCEPTED1.37 sdetails
#32ACCEPTED1.38 sdetails
#33ACCEPTED1.37 sdetails
#34ACCEPTED1.37 sdetails
#35ACCEPTED1.37 sdetails
#36ACCEPTED1.37 sdetails
#37ACCEPTED1.37 sdetails
#38ACCEPTED1.37 sdetails
#39ACCEPTED1.37 sdetails
#40ACCEPTED1.37 sdetails

Code

#include <iostream>
#include <cmath>

using namespace std;
typedef long long ll;

int n;
ll t[10005];
ll st[18][10005];

ll res = 0;

ll rmq(int a, int b) {
	int l = b-a+1;
	int k = (int)log2(l);
	return max(t[st[k][a]], t[st[k][a+(l-(1<<k))]]);
}

int main() {
	cin >> n;
	n++;
	for (int i = 0; i < n; ++i) {
		cin >> t[i];
	}
	
	for (int i = 0; i < n; ++i) st[0][i] = i;
	for (int j = 1; (1<<j) <= n; ++j) {
		for (int i = 0; i + (1<<j) <= n; ++i) {
			ll a = st[j-1][i];
			ll b = st[j-1][i+(1<<(j-1))];
			if (t[a] >= t[b]) st[j][i] = a;
			else st[j][i] = b;
		}
	}

	int m = n-1;
	for (int i = 0; i <= m; ++i) {
		for (int j = 0; j <= m; ++j) {
			if (i+j > m) break;
			ll cres = t[i]+t[j];
			int mx = (n-1)-(i+j);
			cres += rmq(0, mx);
			res = max(res, cres);
		}
	}
	cout << res << "\n";
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
11
1 0 5 9 10 2 16 13 0 19 27 6

correct output
30

user output
30

Test 2

Verdict: ACCEPTED

input
0
1000000000

correct output
3000000000

user output
3000000000

Test 3

Verdict: ACCEPTED

input
2
920723174 257627212 913447025

correct output
2762169522

user output
2762169522

Test 4

Verdict: ACCEPTED

input
5
614204647 401645488 129928189 ...

correct output
2208542492

user output
2208542492

Test 5

Verdict: ACCEPTED

input
2
54256444 206394049 121104114

correct output
467044542

user output
467044542

Test 6

Verdict: ACCEPTED

input
7
686724308 438948356 427767957 ...

correct output
2265598798

user output
2265598798

Test 7

Verdict: ACCEPTED

input
1
311006810 735539135

correct output
1357552755

user output
1357552755

Test 8

Verdict: ACCEPTED

input
5
909981712 474843756 579047072 ...

correct output
2729945136

user output
2729945136

Test 9

Verdict: ACCEPTED

input
8
263723811 263826078 552550124 ...

correct output
1884971297

user output
1884971297

Test 10

Verdict: ACCEPTED

input
10
47431982 572309863 790637525 8...

correct output
2456821545

user output
2456821545

Test 11

Verdict: ACCEPTED

input
1
563478341 732045107

correct output
1859001789

user output
1859001789

Test 12

Verdict: ACCEPTED

input
8
168396217 182825737 225534050 ...

correct output
821413368

user output
821413368

Test 13

Verdict: ACCEPTED

input
6
8239572 293118130 424765918 60...

correct output
1323675241

user output
1323675241

Test 14

Verdict: ACCEPTED

input
5
211820895 275557465 576359127 ...

correct output
1608511210

user output
1608511210

Test 15

Verdict: ACCEPTED

input
8
162356479 165603162 208896246 ...

correct output
1408736671

user output
1408736671

Test 16

Verdict: ACCEPTED

input
6
33810454 155427303 197741842 2...

correct output
1049146136

user output
1049146136

Test 17

Verdict: ACCEPTED

input
10
89578146 133230794 158521006 1...

correct output
1097239610

user output
1097239610

Test 18

Verdict: ACCEPTED

input
1
88800745 582507152

correct output
760108642

user output
760108642

Test 19

Verdict: ACCEPTED

input
9
149294988 180334552 204632615 ...

correct output
1398889544

user output
1398889544

Test 20

Verdict: ACCEPTED

input
4
34450153 238958390 488598926 5...

correct output
1011648005

user output
1011648005

Test 21

Verdict: ACCEPTED

input
10000
227479 285661 513806 630072 68...

correct output
1000924493

user output
1000924493

Test 22

Verdict: ACCEPTED

input
10000
191586 198991 372342 735942 77...

correct output
1000549803

user output
1000549803

Test 23

Verdict: ACCEPTED

input
10000
23304 120978 159707 237237 269...

correct output
1000257360

user output
1000257360

Test 24

Verdict: ACCEPTED

input
10000
106330 124685 139669 225487 28...

correct output
1000093711

user output
1000093711

Test 25

Verdict: ACCEPTED

input
10000
96109 126789 374207 443474 527...

correct output
1002231297

user output
1002231297

Test 26

Verdict: ACCEPTED

input
10000
40394 192904 233871 283485 309...

correct output
1000269779

user output
1000269779

Test 27

Verdict: ACCEPTED

input
10000
162 68418 321306 421852 534881...

correct output
1000703483

user output
1000703483

Test 28

Verdict: ACCEPTED

input
10000
33576 196666 222231 266386 412...

correct output
1000225728

user output
1000225728

Test 29

Verdict: ACCEPTED

input
10000
4719 63323 145092 321089 35037...

correct output
1000090145

user output
1000090145

Test 30

Verdict: ACCEPTED

input
10000
156131 290420 301158 429339 45...

correct output
1000623062

user output
1000623062

Test 31

Verdict: ACCEPTED

input
10000
439837926 276260661 669189511 ...

correct output
2998362551

user output
2998362551

Test 32

Verdict: ACCEPTED

input
10000
610855962 876847879 551857669 ...

correct output
2999475210

user output
2999475210

Test 33

Verdict: ACCEPTED

input
10000
3633323 506510656 783930239 49...

correct output
2999538446

user output
2999538446

Test 34

Verdict: ACCEPTED

input
10000
476322283 58861121 11409462 80...

correct output
2999273030

user output
2999273030

Test 35

Verdict: ACCEPTED

input
10000
929676273 823199130 76129456 9...

correct output
2999801112

user output
2999801112

Test 36

Verdict: ACCEPTED

input
10000
1000000000 1000000000 10000000...

correct output
3000000000

user output
3000000000

Test 37

Verdict: ACCEPTED

input
10000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
0

user output
0

Test 38

Verdict: ACCEPTED

input
10000
10000 19999 29998 39997 49996 ...

correct output
100020000

user output
100020000

Test 39

Verdict: ACCEPTED

input
10000
0 100000 200000 300000 400000 ...

correct output
1000000000

user output
1000000000

Test 40

Verdict: ACCEPTED

input
10000
1000000000 999900000 999800000...

correct output
3000000000

user output
3000000000