#include <bits/stdc++.h>
using namespace std;
template<typename T>
using V = vector<T>;
int n, m;
V<int> a, lis;
int main() {
cin >> n >> m;
a = V<int>(n + 1);
for (int i = 1; i <= n; i++) {
cin >> a[i];
a[i] -= i * m;
}
lis = {0};
for (int i = 1; i <= n; i++) {
auto lb = upper_bound(lis.begin(), lis.end(), a[i], greater<int>());
if (lb == lis.end()) {
lis.push_back(a[i]);
} else {
if (lb - lis.begin() > 0) lis[lb - lis.begin() - 1] = a[i];
}
}
cout << (n - (lis.size() - 1)) << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |