看了第二篇题解自己码了一遍,找不出哪里错了(郁闷)
#include<bits/stdc++.h>
using namespace std;
int n,d,ans=0,a[100006];
int main()
{
cin>>n>>d;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
for(int i=1;i<n-1;i++)
if(a[i-1]!=0&&a[i+1]-a[i-1]<=d){
a[i]=0;
ans++;
}
else{
int j=i-1;
while(a[j]==0) j--;
if(a[i+1]-a[j]<=d) a[i]=0;
ans++;
}
cout<<ans;
return 0;
}
万分感谢!!!