This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100 + 5;
const int maxk = 10000/4 + 5;
int N, K;
int L, R;
int a[maxn];
int suma;
int sol;
int dp[maxn][maxn][maxk];
int solL[maxn][maxk];
int main()
{
    cin >> N >> L >> R >> K;
    K = min(K, N * N / 4 + 2);
    for (int i = 1; i <= N; i++)
        cin >> a[i];
    for (int i = L; i <= R; i++)
        suma += a[i];
    for (int i = L; i <= R; i++)
    {
        for (int j = L - 1; j > 0; j--)
        {
            for (int k = 0; k <= K; k++)
            {
                dp[i][j][k] = max(dp[i][j][k], dp[i - 1][j][k]);
                dp[i][j][k] = max(dp[i][j][k], dp[i][j + 1][k]);
                int cijena  = i - j;
                if (k >= cijena) dp[i][j][k] = max(dp[i][j][k], dp[i - 1][j + 1][k - cijena] + a[i] - a[j]);
            }
        }
    }
    for (int i = L - 1; i <= R; i++)
        for (int j = 0; j <= K; j++)
            solL[i][j] = dp[i][1][j];
    memset(dp, 0, sizeof dp);
    for (int i = R; i >= L; i--)
    {
        for (int j = R + 1; j <= N; j++)
        {
            for (int k = 0; k <= K; k++)
            {
                dp[i][j][k] = max(dp[i][j][k], dp[i + 1][j][k]);
                dp[i][j][k] = max(dp[i][j][k], dp[i][j - 1][k]);
                int cijena = j - i;
                if (k >= cijena) dp[i][j][k] = max(dp[i][j][k], dp[i + 1][j - 1][k - cijena] + a[i] - a[j]);
            }
        }
    }
    for (int i = L - 1; i <= R; i++)
        for (int j = 0; j <= K; j++)
            sol = max(sol, solL[i][j] + dp[i + 1][N][K - j]);
    cout << suma - sol << '\n';
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |