#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using ll=long long; typedef pair P; ll dp[4][303][303][303]; const ll INF=1e18; template void chmax(T &x, T y){ x=max(x, y); } int main() { int n, k; cin>>n>>k; ll a[303]; for(int i=0; i>a[i]; } for(int i=0; i v; for(int i=0; i=1; i--){ if(l=0){ chmax(dp[1][l][r][i-(r-l)], dp[0][l][r][i]); } if(l=0){ chmax(dp[0][l-1][r][i-1], dp[0][l][r][i]+a[l-1]*(i-1)); } if(l=0){ chmax(dp[0][l][r][i-(r-l)], dp[1][l][r][i]); } if(l=0; i--){ chmax(mxl[i&1], dp[0][l][r][i]); chmax(mxr[i&1], dp[1][l][r][i]); if(i<=r-l){ chmax(ans[l+i], mxl[i&1]); chmax(ans[r-i], mxr[i&1]); } } } for(int i=0; i