数据明明对了,为什么还是WA。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
ll a[2050];
ll dp[2050][2050];
ll ans;
int main(){
cin>>n;
for(ll i=1;i<=n;i++)
cin>>a[i];
for(ll i=0;i<=n;i++){
for(ll j=0;j+i<=n;j++){
dp[i][j]=max(dp[i][j],max(dp[i-1][j]+a[i]*(i+j),dp[i][j-1]+a[n-j+1]*(i+j)));
}
}
for(ll i=0;i<=n;i++){
ans=max(ans,dp[i][n-i]);
}
cout<<ans<<endl;
return 0;
}
测试点1:
5
1
3
1
5
2
记录:https://www.luogu.com.cn/record/179085234