Submission #388371

#TimeUsernameProblemLanguageResultExecution timeMemory
388371warner1129Stove (JOI18_stove)C++17
0 / 100
41 ms98372 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5005; int arr[maxn]; int dp[maxn][maxn], pre[maxn][maxn]; void solve() { int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) cin >> arr[i]; m = min(m, n); memset(dp, 0x3f, sizeof(dp)); dp[0][0] = 0; pre[0][0] = -arr[1] + 1; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) { dp[i][j] = arr[i] + pre[i-1][j-1]; pre[i][j] = min(pre[i-1][j], dp[i][j] - arr[i+1] + 1); } cout << dp[n][m] << '\n'; } signed main() { ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...