Submission #488296

#TimeUsernameProblemLanguageResultExecution timeMemory
488296ala2Rabbit Carrot (LMIO19_triusis)C++14
0 / 100
41 ms98524 KiB
#include <bits/stdc++.h> using namespace std; int n; int a[1001000]; int k; int can(int x,int y) { if(x>=y) return 1; if(y-x<=k) return 1; return 0; } int dp[5010][5010]; int f(int i,int j) { if(dp[i][j]!=-1) return dp[i][j]; dp[i][j]=10000000; if(i==n-1) { return 1-can(j,a[i]); } int mn=10101010; for(int v=0;v<=1000;v++) {//cout<<" "<<j<<" "<<i<<" "<<v<<endl; if(can(j,v)) { mn=min(mn,f(i+1,v)+(v!=a[i])); } } return dp[i][j]=mn; } int main() { memset(dp,-1,sizeof dp); cin>>n>>k; for(int i=0;i<n;i++) { cin>>a[i]; } 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...