Submission #1322051

#TimeUsernameProblemLanguageResultExecution timeMemory
1322051eb90156Rabbit Carrot (LMIO19_triusis)C++20
0 / 100
18 ms444 KiB
#include <bits/stdc++.h>
using namespace std;
#define forn(i, n) for(ll i = 0; i < (n); ++i)
#define for1(i, n) for(ll i = 1; i <= (n); ++i)
#define chmin(a, b) ((a) = min(a, b))
using ll = long long;
const int oo = 1e7;


const int MAXN = 2e5 + 2;

ll n, m;
int a[MAXN];



#define mret return mem[i] =
int mem[MAXN];
int f(int i)
{
    if (i == -1) return 0;
    if (mem[i] != -1) return mem[i];
    
    int ans = oo;
    for (int j = i; j >= 0; --j)
    if (a[j] + m > a[i + 1] - (i + 1 - j) * m)
        chmin(ans, (i - j) + f(j - 1));
        
    mret ans;
}


int main()
{
    cin >> n >> m;
    for1(i, n) cin >> a[i];
    
    forn(i, n+2) mem[i] = -1;
    cout << f(n + 1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...