题面
代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[100005], l[100005], r[100005];
int main(){
ll t;
cin>>t;
while(t--){
ll n,ans = 0;
cin>>n;
memset(l,0,sizeof(l));
memset(r,0,sizeof(r));
for(ll i=1;i<=n;i++) cin>>a[i];
for(ll i=1;i<=n;i++) l[i]=max(l[i-1],a[i]+i);
l[0]=0;
a[n+1]=0;
ans=0;
for(ll i=n;i>=1;i--) r[i] = max(r[i+1],a[i]-i);
for(ll i=2;i<n;i++) ans=max(a[i]+l[i-1]+r[i+1],ans);
cout <<ans<<endl;
}
return 0;
}
分数
WA90
错误阳历
话说为什么是第一个阳历错
输入
7
100
254156 354614 741521 283317 430612 671169 12863 4177 774626 755225 582076 960089 296545 494721 653067 482573 388650 624521 298081 19357 25426 34993 957193 660868 422586 47555 801269 385428 503709 157818 613607 288401 46096 916314 614121 899640 11800 135245 887282 109401 535457 364701 682621 122161 161279 616525 863049 190735 577991 493825 297361 568259 844744 833379 272755 135053 559409 249926 877169 119786 664036 540466 545163 800574 14698 864711 145271 598357 399721 782281 724876 151925 462429 208919 993777 141457 381541 46262 430086 682817 618953 12301 923821 922329 7145 268493 666951 903517 252361 407481 687361 685545 219859 515911 371761 661193 109153 434975 872287 587351
100
190045 222035 412589 54932 453601 729856 669997 800337 123509 186289 750996 773777 124695 469265 498881 778801 617419 721849 485002 133377 277852 425197 37186 228257 229549 937541 582081 919393 850373 87161 44905 410337 256806 230262 725576 107776 404761 708708 680877 526706 416881 675819 544201 343489 511009 8029 221409 795478 388549 18146 150757 657671 568001 427280 67451 553500 241976 552116 73184 453283 115400 610001 528537 797141 146481 503157 549001 842441 820838 954699 490097 708871 113311 128804 9625 827921 872721 644833 615 115886 981281 828249 799881 583993 614689 339300 507392 64069 74234 112179 736025 429424 554587 964815 968184 562356 876079 667168 888531 443922
100
206913 170241 39141 548447 842209 537981 436545 721949 246103 491291 512938 837021 457460 930001 83537 521571 702901 30449 877521 412117 870228 395638 601189 747067 702137 69937 194593 588304 470191 164631 25111 84688 636460 885733 553253 5497 567617 177789 959413 797210 53848 458425 601026 82721 206873 458038 819596 907991 503599 835174 642001 758036 973249 124428 662977 512871 908133 825937 387163 721741 790001 173533 805368 96823 161489 169331 219097 749201 622617 630676 677164 365703 992289 376935 871876 123693 154594 59272 317409 279339 430851 157549 22277 861868 288637 29033 946061 525285 864393 231677 531005 405694 616001 761535 675055 212751 790087 274929 267465 653261
5
5 1 4 2 3
4
1 1 1 1
6
9 8 7 6 5 4
7
100000000 1 100000000 1 100000000 1 100000000
输出
2910996
2914266
2924917
8
1
22
还有个CE的
#include <bits/stdc++.h>
#define ll long long
using namespace std;
long long a[100005], l[100005], r[100005];
int main(){
int t;
cin >> t;
while(t--){
int n,ans=0;
cin>>n;
memset(l,-1,sizeof(l));
memset(r,-1,sizeof(r));
for(int i=1;i<=n;i++) cin >> a[i];
for(int i=1;i<=n;i++) l[i]=max(l[i-1], a[i]+i);
l[0]=0;
a[n+1]=0;
ans=0;
for(int i=n;i>=1;i--) r[i]=max(r[i+1],a[i]-i);
for(int i=2;i<n;i++) ans=max(a[i]+l[i-1]+r[i+1],ans);
cout<<ans<<endl;
}
return 0;
}