RT.代码如下,指出问题所在赏一关注。
注:大致思路为枚举三种方式所采摘蘑菇的值,再进行比较。
#include<bits/stdc++.h>
using namespace std;
int a[1000010],ans1[2000010],ans2[2000010],ans3[2000010];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
ans1[i]=i-1;
if(i%2){
ans2[i]=4*(i/2+1)-4;
}
else{
ans2[i]=4*(i/2)-1;
}
if(i==1){
ans3[i]=0;
}
else{
ans3[i]=n+1+(n-i+1)-1;
}
}
for(int i=n+1;i<=n*2;i++){
cin>>a[i];
ans1[i]=3*n-i;
if((i-n)%2){
ans2[i]=4*((i-n)/2+1)-3;
}
else{
ans2[i]=4*((i-n)/2)-2;
}
ans3[i]=i-n;
}
int sum1=0,sum2=0,sum3=0;
for(int i=1;i<=n*2;i++){
sum1+=ans1[i]*a[i];
sum2+=ans2[i]*a[i];
sum3+=ans3[i]*a[i];
}
int ans=max(sum1,max(sum2,sum3));
cout<<ans;
return 0;
}