admin管理员组

文章数量:1530020

Rikka with Competition

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0    Accepted Submission(s): 0


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  |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
  
  
 

水题 交题的时候傻逼了 忘了注释sort排序后的测试数据 结果错了一次 又从头到尾思考了一遍 想想都被自己菜哭

ac代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,n,k;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&k);
        if(n==1)
        {
            printf("1\n");
            continue;
        }
        int a[n];
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        sort(a,a+n);
        int sum=1;
        for(int i=n-1;i>0;i--)
        {
            if(a[i]-a[i-1]<=k)
                sum++;
            else break;
        }
        cout<<sum<<endl;
    }
    return 0;
}


本文标签: 联赛hducompetitionRikka