제출 #637912

#제출 시각아이디문제언어결과실행 시간메모리
637912ojoConmigoRabbit Carrot (LMIO19_triusis)C++17
14 / 100
282 ms196504 KiB
#include <bits/stdc++.h>
using namespace std;

int n,m;
vector<int> v;
vector<vector<int>> dp;

int f(int i,int pos){
    if(i == n){
        return 0;
    }
    if(dp[i][pos] != -1)return dp[i][pos];
    if(v[i] > pos+m){
        dp[i][pos] = f(i+1,pos+m) + 1;
    }else if(v[i] < pos+m){
        dp[i][pos] = min(f(i+1,v[i]),f(i+1,pos+m)+1);
    }else{
        dp[i][pos] = f(i+1,v[i]);
    }
    return dp[i][pos];
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> m;
    v.resize(n);
    for(int i=0; i<n; i++){
        cin >> v[i];
    }
    /*
    int pos = 0;
    int cont = 0;
    for(int i=0; i<n; i++){
        if(v[i] > pos+m){
            cont++;
            pos+=m;
        }else pos = v[i];
    }
    cout << cont << endl;
    */
    dp.assign(n,vector<int> (10000,-1));
    cout << f(0,0) << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...