Submission #866516

#TimeUsernameProblemLanguageResultExecution timeMemory
866516RifalRabbit Carrot (LMIO19_triusis)C++14
35 / 100
100 ms196300 KiB
#include <bits/stdc++.h> #include <fstream> #define endl '\n' #define mod 998244353 #define INF 900000000000000000 //#define cin fin //#define cout fout #define fi first #define se second using namespace std; //ofstream fout("intel.out"); //ifstream fin("intel.in"); const int Max = 5e3 + 1; long long dp[Max][Max]; int main() { ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0); int n, m; cin >> n >> m; long long arr[n+1]; for(int i = 1; i <= n; i++) { cin >> arr[i]; } for(int i = 0; i < Max; i++) { for(int j = 0; j < Max; j++) { dp[i][j] = INF; } } dp[0][0] = 0; for(int i = 1; i <= n; i++) { for(int j = 0; j < Max; j++) { if(j == arr[i]) { dp[i][j] = min(dp[i-1][max(0,j-m)],dp[i][j]); } else { dp[i][j] = min(dp[i-1][max(0,j-m)]+1,dp[i][j]); } } for(int j = Max-2; j >= 0; j--) { dp[i][j] = min(dp[i][j+1],dp[i][j]); } } long long ans = INF; for(int i = 0; i < Max; i++) { ans = min(ans,dp[n][i]); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...