Submission #821626

#TimeUsernameProblemLanguageResultExecution timeMemory
821626Youssif_ElkadiRabbit Carrot (LMIO19_triusis)C++17
0 / 100
0 ms212 KiB
#include <bits/stdc++.h> using namespace std; const long long N = 2e5 + 5, M = 11, inf = 1e9 + 5, mod = 1e9 + 7; pair<long long, long long> dp[N]; long long n, m; long long arr[N]; int main() { cin >> n >> m; dp[0] = {0, 0}; long long mx = 0; for (long long i = 1; i <= n; i++) dp[i] = {-inf, 0}; for (long long i = 1; i <= n; i++) { cin >> arr[i]; long long l = 0, r = n, mid, ans = -1; while (l <= r) { mid = (l + r) / 2; if (dp[mid].first == -inf) r = mid - 1; else if (dp[mid].first + m * (i - dp[mid].second) >= arr[i]) l = mid + 1, ans = max(ans, mid); else r = mid - 1; } if (ans != -1) { if (dp[ans + 1].first == -inf || dp[ans + 1].first + (i + 1) * m <= arr[i] + m) { mx = max(mx, ans + 1); dp[ans + 1].first = arr[i]; dp[ans + 1].second = i; } } } cout << n - mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...