| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 39793 | 真很诡异你知道吗其实我不是皇子瑞 | 【S】T1 | C++ | 通过 | 100 | 117 MS | 1824 KB | 920 | 2026-02-02 14:31:58 |
#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); } }