Submission #1322065

#TimeUsernameProblemLanguageResultExecution timeMemory
1322065eb90156Rabbit Carrot (LMIO19_triusis)C++20
63 / 100
1095 ms23836 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))
#define dbg(x) cout << #x << " = " << (x) << endl;
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] - j * m >= a[i + 1] - (i + 1) * m)
        chmin(ans, f(j - 1) - j);
        
    mret i + ans;
}


int main()
{
    cin >> n >> m;
    for1(i, n) cin >> a[i];
    
    forn(i, n+2) mem[i] = -1;
    // forn(i, n+1) f(i);
    cout << f(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...