#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int longest(const vector<int> &seq) {
vector<int> minimum;
for (int i : seq) {
int pos = std::upper_bound(minimum.begin(), minimum.end(), i) - minimum.begin();
if (pos == minimum.size()) {
minimum.push_back(i);
} else {
minimum[pos] = i;
}
}
return minimum.size();
}
int main() {
int pole;
int height;
std::cin >> pole >> height;
vector<int> poles(pole);
for (int p = 0; p < pole; p++) { std::cin >> poles[p]; }
vector<int> nochange;
for (int i = 1; i <= pole; i++) {
if (i * height >= poles[i - 1]) {
nochange.push_back(i * height - poles[i - 1]);
}
}
cout << pole - longest(nochange) << 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... |