题目:
Problem Description
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:
A wrestling match will be held tomorrow. n players will take part in it. The i th player’s strength point is ai .
If there is a match between the i th player plays and the j th player, the result will be related to |ai−aj| . If |ai−aj|>K , the player with the higher strength point will win. Otherwise each player will have a chance to win.
The competition rules is a little strange. Each time, the referee will choose two players from all remaining players randomly and hold a match between them. The loser will be be eliminated. After n−1 matches, the last player will be the winner.
Now, Yuta shows the numbers n,K and the array a and he wants to know how many players have a chance to win the competition.
It is too difficult for Rikka. Can you help her?
A wrestling match will be held tomorrow. n players will take part in it. The i th player’s strength point is ai .
If there is a match between the i th player plays and the j th player, the result will be related to |ai−aj| . If |ai−aj|>K , the player with the higher strength point will win. Otherwise each player will have a chance to win.
The competition rules is a little strange. Each time, the referee will choose two players from all remaining players randomly and hold a match between them. The loser will be be eliminated. After n−1 matches, the last player will be the winner.
Now, Yuta shows the numbers n,K and the array a and he wants to know how many players have a chance to win the competition.
It is too difficult for Rikka. Can you help her?
Input
The first line contains a number
t(1≤t≤100)
, the number of the testcases. And there are no more than
2
testcases with
n>1000
.
For each testcase, the first line contains two numbers n,K(1≤n≤105,0≤K<109) .
The second line contains n numbers ai(1≤ai≤109) .
For each testcase, the first line contains two numbers n,K(1≤n≤105,0≤K<109) .
The second line contains n numbers ai(1≤ai≤109) .
Output
For each testcase, print a single line with a single number -- the answer.
Sample Input
2 5 3 1 5 9 6 3 5 2 1 5 9 6 3
Sample Output
5 1
思路:签到题。对分值排序。获胜人数处置为1,i从大到小,如果| a[i]-a[i-1] |<=k,获胜人数+1,不然就结束循环,因为继续下去没人能赢当前这个人。
CODE:
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main()
{
int t,n,k,i;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&k);
for(i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
int cnt=1;
for(i=n-1;i>0;i--){
if(a[i]-a[i-1]<=k) cnt++;
else break;
}
printf("%d\n",cnt);
}
return 0;
}