Submission #639639

#TimeUsernameProblemLanguageResultExecution timeMemory
639639SofiatpcRabbit Carrot (LMIO19_triusis)C++14
0 / 100
1 ms212 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN =  200005;
int N,M, dp[MAXN][2];
long long h[MAXN];

int fazdp(int i, int a)
{
    if(i==N)return dp[i][a]=0;
    if(dp[i][a]!=-1)return dp[i][a];

    int s = h[i];
    if(a==1)h[i]=h[i-1]+M;

    dp[i][a]=fazdp(i+1,1)+1;
    if(h[i+1] <= h[i]+M )dp[i][a]=min(dp[i][a],fazdp(i+1,0));

    h[i]=s;
    return dp[i][a];
}

int main()
{
    cin>>N>>M;
    for(int i = 1; i <= N; i++)cin>>h[i];

    for(int i = 1; i <= N; i++)
        for(int a = 0; a <= 1; a++)dp[i][a]=-1;

    h[0]=0;
    int ans = fazdp(1,1)+1;
    if(h[1]<=h[0]+M)ans=min(fazdp(1,0),ans);

    cout<<ans<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...