提交时间:2026-02-02 14:31:58

运行 ID: 39793

#include<bits/stdc++.h> using namespace std; long long _,n,k,a[100005],last[100005]; int main(){ scanf("%lld",&_); while(_--){ scanf("%lld%lld",&n,&k); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } sort(a+1,a+n+1); last[n]=n; for(int i=n-1;i>=1;i--){ if(a[i+1]-a[i]>1){ last[i]=i; } else last[i]=last[i+1]; } long long nmax=0; for(int i=1;i<=n;i++){ long long l=i,r=last[i],ans=-1; while(l<=r){ long long mid=(l+r)/2; if(a[mid]-a[i]<=k){ ans=mid; l=mid+1; } else r=mid-1; } if(ans!=-1){ nmax=max(nmax,ans-i+1); } } printf("%lld\n",nmax); } }