#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define ll long long
int main(void){
//freopen("input.txt", "r", stdin);
ll n, k;
cin>>n>>k;
vector<ll> arr(n, 0);
for(ll i = 0; i<n; i++){
ll a; cin>>a;
arr[i] = a - (k*(i+1));
}
reverse(arr.begin(), arr.end());
vector<ll> lis;
for(ll i = 0; i<n; i++){
auto ub = upper_bound(lis.begin(), lis.end(), arr[i]);
if(ub == lis.end()) lis.push_back(arr[i]);
else lis[ub - lis.begin()] = arr[i];
}
ll z = (upper_bound(lis.begin(), lis.end(), 0) - lis.begin());
cout<<lis.size() - z + n - lis.size()<<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... |