Submission #1278350

#TimeUsernameProblemLanguageResultExecution timeMemory
1278350cmiucRabbit Carrot (LMIO19_triusis)C++20
35 / 100
91 ms98596 KiB
#include <iostream> using namespace std; const int N = 5005; int dp[N][N], a[N], Ans = N; int main(){ int n, m, M = 0; cin>>n>>m; for (int i=1;i<=n;i++) cin>>a[i], M = max(M, a[i]); for (int i=0;i<=n;i++){ for (int j=0;j<=M;j++) dp[i][j] = n; } dp[0][0] = 0; for (int i=1;i<=n+1;i++){ // print(n, M, i-1); for (int j=M-1;j>=0;j--) dp[i-1][j] = min(dp[i-1][j], dp[i-1][j+1]); for (int j=0;j<=M;j++){ dp[i][j] = dp[i-1][max(0, j - m)] + (a[i] != j); if (i == n) Ans = min(Ans, dp[i][j]); } } cout<<Ans<<'\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...