Submission #788781

#TimeUsernameProblemLanguageResultExecution timeMemory
788781BBart888Rabbit Carrot (LMIO19_triusis)C++14
100 / 100
30 ms6052 KiB
#include <iostream> #include <vector> #include <map> #include <set> #include<algorithm> #include <string> #include <cmath> #include <cstring> #include <queue> #include<iomanip> #include <array> using namespace std; const int MAXN = 2e5 + 11; const int MOD = 998244353; using ll = long long; using ld = long double; const int K = 26; int n, m; ll h[MAXN]; ll d[MAXN]; int x[MAXN]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("cowjog.in", "r", stdin); //freopen("cowjog.out", "w", stdout); cin >> n >> m; int ind = 0; for (int i = 0; i < n; i++) { cin >> x[i]; if (m * (i+1) >= x[i]) h[ind++] = m * (i+1) - x[i]; } for (int i = 1; i <= n; i++) d[i] = 1e18; for (int i = 0; i < ind; i++) { int l = upper_bound(d, d + n + 1, h[i]) - d; if (d[l - 1] <= h[i] && d[l] > h[i]) d[l] = h[i]; //cout << l << " " << d[l - 1] << " " << d[l] << " " << h[i] << '\n'; } int ans = 0; for (int i = 1; i <= ind; i++) if (d[i] < 1e18) ans = i; cout <<n - ans << '\n'; 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...