| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 39786 | 郭澍宇 | 【S】T1 | C++ | 通过 | 100 | 155 MS | 1024 KB | 955 | 2026-02-02 14:07:15 |
#include<bits/stdc++.h> using namespace std; int a[100005]; map<int ,int>mp; int n,k,T; int main(){ //freopen("clamprun.in","r",stdin); //freopen("clamprun.out","w",stdout); scanf("%d",&T); while(T--){ scanf("%d%d",&n,&k); k++; mp.clear(); for(int i = 1;i<=n;i++)scanf("%d",&a[i]); for(int i = 1;i<=n;i++)mp[a[i]]++; sort(a+1,a+n+1); n=unique(a+1,a+n+1)-a-1; int con = 0,cnt =0,maxx =0,lst=0; for(int i = 1;i<=n;i++){ if(a[i-1]!=a[i]-1||i==1){ con=1,cnt=mp[a[i]]; lst=mp[a[i]]; maxx=max(cnt,maxx); continue; } con++; cnt+=mp[a[i]]; if(con>k){ cnt-=lst; lst=mp[a[i-k+1]]; } maxx=max(cnt,maxx); } printf("%d\n",maxx); } }