Submission #1129006

#TimeUsernameProblemLanguageResultExecution timeMemory
1129006nh0902Rabbit Carrot (LMIO19_triusis)C++20
100 / 100
33 ms3652 KiB
#include <bits/stdc++.h> using namespace std; const int N = 210000; const int M = 100001; const long long inf = 1e15; const long long mod = 1e9 + 7; int n; long long m; long long a[N]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m; for (int i = 1; i <= n; i ++) { cin >> a[i]; } deque<long long> dp; dp.push_back(0); for (int i = 1; i <= n; i ++) { long long c = a[i] - (long long) i * m; int be = 0; int en = dp.size() - 1; while (be < en) { int mid = (be + en) / 2; if (dp[mid] >= c) { en = mid; } else { be = mid + 1; } } if (dp[be] >= c) { if (be == 0) { dp.push_front(c); } else { dp.push_front(- inf); dp[be] = c; } } else { dp.push_front(- inf); } } int ans = n; for (int i = 0; i <= n; i ++) { dp[i] += (long long) n * m; //cout << dp[i] << "\n"; if (dp[i] >= 0) { ans = i; break; } } 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...