Submission #488298

#TimeUsernameProblemLanguageResultExecution timeMemory
488298ala2Rabbit Carrot (LMIO19_triusis)C++14
0 / 100
1086 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(i==n-1) { return 1-can(j,a[i]); } int mn=10101010; for(int v=0;v<=20;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...