Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33852 | 22fhq | 【S】T1 | C++ | 通过 | 100 | 269 MS | 2600 KB | 857 | 2024-10-24 13:43:49 |
#include<bits/stdc++.h> using namespace std; #define int long long int n,k,a[100005],b[100005],cnt[100005]; void slv(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]; cnt[i]=0; } sort(b+1,b+1+n); int mn=unique(b+1,b+1+n)-b-1; for(int i=1;i<=n;i++){ a[i]=lower_bound(b+1,b+1+mn,a[i])-b; cnt[a[i]]++; } int l=1,r=1,sum=cnt[1],ans=cnt[1]; while(r<=mn){ r++; sum+=cnt[r]; if(b[r]-b[r-1]!=1)l=r,sum=cnt[r]; while(b[r]-b[l]>k)l++,sum-=cnt[l-1]; ans=max(ans,sum); } cout<<ans<<endl; } signed main(){ //freopen("clamprun.in","r",stdin); //freopen("clamprun.out","w",stdout); int T; cin>>T; while(T--) slv(); // cerr<<clock()*1.0/CLOCKS_PER_SEC<<"s\n"; return 0; }