http://acm.hdu.edu.cn/showproblem.php?pid=6095
给定一个为m长的数组。
内容为他们的战斗力。
m个人比赛,如果|a_i-a_j|>k,那么分数最大的对
否则两个人都有机会,问你多少人有机会
如果大于k,说明之后的人都没有机会了。直接跳过
否则则有机会。继续
#include <bits/stdc++.h>
using namespace std;
/*
*/
const int maxn=1e5+5;
int a[maxn];
int main()
{ int m,k;
int t;
scanf("%d",&t);
while(t--){
scanf("%d%d",&m,&k);
for(int i=0;i<m;i++)
scanf("%d",&a[i]);
sort(a,a+m);
reverse(a,a+m);
int sum=1;
for(int i=0;i<m-1;i++){
if((a[i]-a[i+1])>k)
{break;}
else sum++;
}
cout<<sum<<endl;
}
return 0;
}