Task: | Yellow Yacht |
Sender: | Yytsi |
Submission time: | 2018-09-13 17:52:07 +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.01 s | details |
#5 | ACCEPTED | 0.01 s | details |
#6 | ACCEPTED | 0.01 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.02 s | details |
#9 | ACCEPTED | 0.02 s | details |
#10 | ACCEPTED | 0.01 s | details |
#11 | ACCEPTED | 0.02 s | details |
#12 | ACCEPTED | 0.02 s | details |
#13 | ACCEPTED | 0.02 s | details |
#14 | ACCEPTED | 0.01 s | details |
#15 | ACCEPTED | 0.03 s | details |
#16 | ACCEPTED | 0.02 s | details |
#17 | ACCEPTED | 0.02 s | details |
#18 | ACCEPTED | 0.02 s | details |
#19 | ACCEPTED | 0.01 s | details |
#20 | ACCEPTED | 0.01 s | details |
#21 | ACCEPTED | 0.75 s | details |
#22 | ACCEPTED | 0.75 s | details |
#23 | ACCEPTED | 0.75 s | details |
#24 | ACCEPTED | 0.75 s | details |
#25 | ACCEPTED | 0.76 s | details |
#26 | ACCEPTED | 0.75 s | details |
#27 | ACCEPTED | 0.75 s | details |
#28 | ACCEPTED | 0.75 s | details |
#29 | ACCEPTED | 0.75 s | details |
#30 | ACCEPTED | 0.75 s | details |
#31 | ACCEPTED | 0.75 s | details |
#32 | ACCEPTED | 0.76 s | details |
#33 | ACCEPTED | 0.75 s | details |
#34 | ACCEPTED | 0.75 s | details |
#35 | ACCEPTED | 0.75 s | details |
#36 | ACCEPTED | 0.75 s | details |
#37 | ACCEPTED | 0.74 s | details |
#38 | ACCEPTED | 0.75 s | details |
#39 | ACCEPTED | 0.75 s | details |
#40 | ACCEPTED | 0.75 s | details |
Code
// TOO SLOW, QAQ ;___; #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 ff first #define ss second #define pb push_back #define INF 2147483647 #define LINF (1LL<<62LL) typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; int m; #define N (1<<15) ll t[2*N]; void add(int k, ll x) { k += N; t[k] += x; for (k /= 2; k >= 1; k /= 2) { t[k] = max(t[2*k], t[2*k+1]); } } ll maxq(int a, int b) { a += N; b += N; ll r = 0; while (a <= b) { if (a % 2 == 1) r = max(r, t[a++]); if (b % 2 == 0) r = max(r, t[b--]); a /= 2; b /= 2; } return r; } ll V[10004]; int main() { IO; cin>>m; FOR(i,0,m+1) { ll x; cin>>x; V[i] = x; add(i,x); } ll r = -LINF; FOR(i,0,m+1) { FOR(j,i,m+1) { // calculate where k can be... if (i+2*j > m) break; int maxk = m - (j+i); r = max(r, V[i]+V[j]+maxq(j,maxk)); /* ll left = V[i]+V[j]; ll mx = maxq(j, maxk); if (r < left + mx) { }*/ } } cout << r; }
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 |