#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+5;
long long A[MAXN],val[MAXN];
int fen[MAXN];
void update(int i,int n,int val) { for(;i<=n;i+=i&-i) fen[i]=max(fen[i],val); }
int get(int i) { int ans=-1e9;for(;i;i-=i&-i) ans=max(ans,fen[i]);return ans; }
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
long long n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>A[i];
A[i]=m*i-A[i],val[i]=A[i];
}
val[n+1]=0;
sort(val+1,val+n+2);
for(int i=1;i<=n+1;i++) fen[i]=-1e9;
int p=lower_bound(val+1,val+n+2,0)-val;
update(p,n+1,0);
for(int i=1;i<=n;i++)
{
A[i]=lower_bound(val+1,val+n+2,A[i])-val;
update(A[i],n+1,get(A[i])+1);
}
cout<<n-get(n+1);
}
# | 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... |