Submission #663041

#TimeUsernameProblemLanguageResultExecution timeMemory
663041finn__Rabbit Carrot (LMIO19_triusis)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> using namespace std; int main() { size_t n; uint64_t m; cin >> n >> m; vector<uint64_t> a(n + 2); for (size_t i = 1; i <= n; i++) cin >> a[i]; a[0] = a[n + 1] = 0; vector<array<uint64_t, 2>> dp(a.size(), {UINT64_MAX, UINT64_MAX}); dp[0][0] = 0; vector<uint64_t> h(a.size()); h[0] = 0; for (size_t i = 1; i < n + 2; i++) { if (a[i] <= a[i - 1] + m) dp[i][0] = dp[i - 1][0]; if (a[i] <= h[i - 1] + m) dp[i][0] = min(dp[i][0], dp[i - 1][1]); if (dp[i - 1][0] < dp[i - 1][1] || (dp[i - 1][0] == dp[i - 1][1] && a[i - 1] > h[i - 1])) { h[i] = a[i - 1] + m; dp[i][1] = dp[i - 1][0] + 1; } else { h[i] = h[i - 1] + m; dp[i][1] = dp[i - 1][1] + 1; } } cout << dp[n + 1][0] << '\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...