#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define nl endl
#define loop(i,a,b) for(ll i=a;i<b;i++)
#define rloop(i,a,b) for(ll i=b;i>=a;i--)
#define cy cout<<"YES"<<endl;
#define cn cout<<"NO"<<endl;
#define cm cout<<-1<<endl
#define vl vector<ll>
#define vchar vector<char>
#define vvll vector<vector<ll>>
#define vvcr vector<vchar>
#define deb(x) cout<<#x<<" "<<x<<endl;
#define all(x) (x).begin(), (x).end()
#define sz(x) ((ll)(x).size())
using namespace std;
const ll MOD=1e9+7;
ll binepow(ll a,ll b,ll mod=-1){
if(b==0){
return 1ll;
}
if(mod!=-1){
ll k=binepow(a,b/2,mod);
if(b%2==0){
return (k*k)%mod;
}
else{
return (((k*a)%mod)*k)%mod;
}
}
else{
ll k=binepow(a,b/2,mod);
if(b%2==0){
return (k*k);
}
else{
return k*k*a;
}
}
}
////////////////////////////////////////////////////////
void solve(){
ll n,m;
cin>>n>>m;
vl a(n);
loop(i,0,n){
cin>>a[i];
}
vl len(n+1,-m);
len[1]=a[0];
ll ans=1;
loop(i,1,n){
ll lo=1,hi=n,k=1;
while(lo<=hi){
ll mid=(lo+hi)/2;
if(len[mid]+m>=a[i]){
lo=mid+1;
k=max(mid+1,k);
}
else{
hi=mid-1;
}
}
len[k]=max(len[k],a[i]);
ans=max(ans,k);
}
cout<<(n-ans)<<nl;
return;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
solve();
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Incorrect |
0 ms |
204 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |