Submission #735372

#TimeUsernameProblemLanguageResultExecution timeMemory
735372That_SalamanderStove (JOI18_stove)C++17
50 / 100
187 ms199176 KiB
#include <bits/stdc++.h> #define int long long #define FOR(var,bound) for(int var = 0; var < bound; var++) #define FORB(var,lb,ub) for (int var = lb; var < ub; var++) #define FORR(var,bound) for(int var = bound-1; var >= 0; var--) using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vector<int>> vvi; typedef pair<int, int> pii; int n, k; int t[100005]; int ds[100005]; int dp[5005][5005]; int solve(int idx, int kLeft) { if (kLeft < 0) return 1000000000; if (idx >= n - 1) return 0; if (dp[idx][kLeft] != -1) return dp[idx][kLeft]; return dp[idx][kLeft] = min(ds[idx] + solve(idx + 1, kLeft), solve(idx + 1, kLeft - 1)); } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> k; FOR (i, n) { cin >> t[i]; } FOR (i, n - 1) { ds[i] = t[i+1] - t[i] - 1; } memset(dp, -1, sizeof(dp)); cout << n + solve(0, k - 1) << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...