#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int LL; typedef pair P; typedef pair LP; const LL INF=1<<30; const LL MAX=1e9+7; void array_show(int *array,int array_n,char middle=' '){ for(int i=0;i &vec_s,int vec_n=-1,char middle=' '){ if(vec_n==-1)vec_n=vec_s.size(); for(int i=0;i &vec_s,int vec_n=-1,char middle=' '){ if(vec_n==-1)vec_n=vec_s.size(); for(int i=0;i>n>>m; for(i=0;i<=m;i++){ for(j=0;j>t[i]; dp[0][i][i]=m*t[i]; } for(i=0;i0)dp[i+1][j-1][k]=max(dp[i][j][k]+(m-i-1)*t[j-1],dp[i+1][j-1][k]); if(k!=j)dp[i+2][j][k]=max(dp[i][j][k],dp[i+2][j][k]); a=abs(j-k); if(a>0 && i+a<=m)dp[i+a][k][j]=max(dp[i][j][k],dp[i+a][k][j]); if(k