很简单的小dfs
额
其实是套着dfs壳的贪心
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,dis;
int pl[100001];
int ans;
void dfs(int now,int la){
if(now==1){
dfs(now+1,now);
ans++;
return ;
}
if(now==n){
ans++;
return ;
}
if(pl[now+1]-pl[la]>dis){
ans++;
dfs(now+1,now);
return ;
}
dfs(now+1,la);
}
int main(){
scanf("%d%d",&n,&dis);
for(int i=1;i<=n;++i){
scanf("%d",&pl[i]);
}
sort(pl+1,pl+n+1);
dfs(1,0);
cout<<n-ans;
return 0;
}