#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; const ll MOD=1e9+7; template void chmin(T &a,const T &b){if(a>b) a=b;} template void chmax(T &a,const T &b){if(a>N>>K; vector A(N); rep(i,N) cin>>A[i]; //vector>> dp(N,vector> (N,vector (2,-INF))); rep(i,K) rep(j,N) rep(k,N) rep(m,2) dp[i][j][k][m]=-INF; rep(i,N){ dp[K-1][i][i][0]=A[i]*K; dp[K-1][i][i][1]=A[i]*K; } for(int i=K-1;i>=1;i--){ for(int j=0;j=0) chmax(dp[i-1][j-1][k][0],val+i*A[j-1]); if(i-(k-j)>=0)chmax(dp[i-(k-j)][j][k][1],val); if(i-2>=0&&j=0)chmax(dp[i-(k-j)][j][k][0],val); if(i-2>=0&&j ans(N,-INF); for(int i=0;i<=K-2;i++) for(int j=0;j=j){ if(k-i+1=0) chmax(ans[k-i-1],val); } }else{ if(j+i<=k){ if(j+i+1=0) chmax(ans[j+i-1],val); } } } rep(i,N) cout<