#include #include using namespace std; int N,K; int A[300]; int ans[300]; int dp[301][300][300][2]; main() { cin>>N>>K; for(int k=0;k<=K;k++)for(int i=0;i>A[i]; ans[i]=-1e9; } for(int i=0;i+1=0;k--)for(int i=0;i=2) { dp[k-2][i][j][0]=max(dp[k-2][i][j][0],L); dp[k-2][i][j][1]=max(dp[k-2][i][j][1],R); } if(i+k<=j) { ans[i+k]=max(ans[i+k],L); ans[j-k]=max(ans[j-k],R); } if(i>0&&k>0) { dp[k-1][i-1][j][0]=max(dp[k-1][i-1][j][0],L+(k-1)*A[i-1]); } if(j+10) { dp[k-1][i][j+1][1]=max(dp[k-1][i][j+1][1],R+(k-1)*A[j+1]); } } for(int i=0;i