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