Submission #796966

#TimeUsernameProblemLanguageResultExecution timeMemory
79696612345678Rabbit Carrot (LMIO19_triusis)C++17
35 / 100
111 ms98488 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=5e3+5;
int n, m, a[nx], dp[nx][nx], ans=1e9;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>m;
    for (int i=1; i<=n; i++) cin>>a[i];
    for (int i=1; i<nx; i++) dp[0][i]=nx;
    for (int i=1; i<=n; i++)
    {
        int mn=1e9;
        vector<int> v(nx);
        for (int j=nx-1; j>=0; j--) mn=min(mn, dp[i-1][j]), v[j]=mn;
        for (int j=0; j<nx; j++) dp[i][j]=v[max(0, j-m)]+1;
        for (int j=max(0, a[i]-m); j<nx; j++) dp[i][a[i]]=min(dp[i][a[i]], dp[i-1][j]);
    }
    for (int i=0; i<nx; i++) ans=min(ans, dp[n][i]);
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...