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 ith player’s strength point is ai.

If there is a match between the ith player plays and the jth player, the result will be related to |aiaj|. If |aiaj|>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 n1 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(1t100), 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(1n105,0K<109).

The second line contains n numbers ai(1ai109).
 

 

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
 
如果差距在k及以内,两者都有赢的可能。如果差距大于k,大者赢。
因此找出两两差距都在k以内的大数有几个即可。
 
 1 #include <iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<queue>
 6 #include<cmath>
 7 #include<string>
 8 #include<map>
 9 #include<vector>
10 using namespace std;
11 
12 int a[100005];
13 bool cmp(int x,int y)
14 {
15     return x>y;
16 }
17 
18 int main()
19 {
20     int T,n,k;
21     scanf("%d",&T);
22     while(T--)
23     {
24         scanf("%d%d",&n,&k);
25         for(int i=0;i<n;i++)
26             scanf("%d",&a[i]);
27         sort(a,a+n,cmp);
28         int i;
29         for(i=0;i<n-1;i++)
30         {
31             if(a[i]-a[i+1]>k)
32                 break;
33         }
34         printf("%d\n",i+1);
35     }
36     return 0;
37 }