Task: | Yellow Yacht |
Sender: | Pohjantahti |
Submission time: | 2018-09-13 17:18:24 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.02 s | details |
#2 | ACCEPTED | 0.01 s | details |
#3 | ACCEPTED | 0.01 s | details |
#4 | ACCEPTED | 0.02 s | details |
#5 | ACCEPTED | 0.01 s | details |
#6 | ACCEPTED | 0.01 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.03 s | details |
#9 | ACCEPTED | 0.02 s | details |
#10 | ACCEPTED | 0.01 s | details |
#11 | ACCEPTED | 0.01 s | details |
#12 | ACCEPTED | 0.01 s | details |
#13 | ACCEPTED | 0.01 s | details |
#14 | ACCEPTED | 0.02 s | details |
#15 | ACCEPTED | 0.01 s | details |
#16 | ACCEPTED | 0.01 s | details |
#17 | ACCEPTED | 0.02 s | details |
#18 | ACCEPTED | 0.03 s | details |
#19 | ACCEPTED | 0.01 s | details |
#20 | ACCEPTED | 0.02 s | details |
#21 | ACCEPTED | 1.40 s | details |
#22 | ACCEPTED | 1.38 s | details |
#23 | ACCEPTED | 1.38 s | details |
#24 | ACCEPTED | 1.38 s | details |
#25 | ACCEPTED | 1.38 s | details |
#26 | ACCEPTED | 1.38 s | details |
#27 | ACCEPTED | 1.38 s | details |
#28 | ACCEPTED | 1.37 s | details |
#29 | ACCEPTED | 1.37 s | details |
#30 | ACCEPTED | 1.43 s | details |
#31 | ACCEPTED | 1.37 s | details |
#32 | ACCEPTED | 1.38 s | details |
#33 | ACCEPTED | 1.37 s | details |
#34 | ACCEPTED | 1.37 s | details |
#35 | ACCEPTED | 1.37 s | details |
#36 | ACCEPTED | 1.37 s | details |
#37 | ACCEPTED | 1.37 s | details |
#38 | ACCEPTED | 1.37 s | details |
#39 | ACCEPTED | 1.37 s | details |
#40 | ACCEPTED | 1.37 s | details |
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 |