Submission #144402

#TimeUsernameProblemLanguageResultExecution timeMemory
144402brcodeRabbit Carrot (LMIO19_triusis)C++14
35 / 100
239 ms98552 KiB
#include <iostream> #include <set> using namespace std; const int MAXN = 5010; int ans = 1e9; int dp[MAXN][MAXN]; int arr[MAXN]; int pref[MAXN]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>arr[i]; } for(int i=0;i<=5000;i++){ if(i == 0){ dp[0][i] = 0; }else{ dp[0][i] = 1e8; } } pref[5001] = 1e9; for(int j=5000;j>=0;j--){ pref[j] = 1e9; pref[j] = min(pref[j+1],dp[0][j]); } for(int i=1;i<=n;i++){ for(int j=0;j<=5000;j++){ int lptr = j-m-1; // cout<<j<<endl; int hold = pref[0]; if(lptr>=0){ hold = pref[lptr+1]; } dp[i][j] = (int)hold; if(arr[i] !=j){ dp[i][j]++; }else{ // cout<<arr[i]<<endl; } } pref[5001] = 1e9; for(int j=5000;j>=0;j--){ pref[j] = 1e9; pref[j] = min(pref[j+1],dp[i][j]); } } //cout<<dp[3][700]<<endl; for(int i=0;i<=5000;i++){ ans = min(ans,dp[n][i]); } cout<<ans<<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...