zoukankan      html  css  js  c++  java
  • 2017 beijing icpc E

    2017-09-22 22:01:19

    writer:pprp

    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. nn players will take part in it. The iith player’s strength point is aiai. 

    If there is a match between the iith player plays and the jjth player, the result will be related to |aiaj||ai−aj|. If |aiaj|>K|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 n1n−1 matches, the last player will be the winner. 

    Now, Yuta shows the numbers n,Kn,K and the array aa 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?  

    InputThe first line contains a number t(1t100)t(1≤t≤100), the number of the testcases. And there are no more than 22 testcases with n>1000n>1000. 

    For each testcase, the first line contains two numbers n,K(1n105,0K<109)n,K(1≤n≤105,0≤K<109).

    The second line contains nn numbers ai(1ai109)ai(1≤ai≤109).

    OutputFor 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

    代码如下:

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 110000;
    int arr[maxn];
    
    int main()
    {
        int cas;
        cin >> cas;
        while(cas--)
        {
            int n, k;
            cin >> n >> k;
            int ans = 1;
            for(int i = 0 ; i < n ; i++)
            {
                cin >> arr[i];
            }
            sort(arr,arr+n);
            for(int i = n-1; i > 0 ; i--)
            {
                if(arr[i]-arr[i-1] > k)
                    break;
                ans++;
            }
            cout << ans << endl;
        }
    
        return 0;
    }
  • 相关阅读:
    假期学习01
    构建之法读后感(二)
    构建之法读后感(一)
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每周日报
    每日日报
  • 原文地址:https://www.cnblogs.com/pprp/p/7577377.html
Copyright © 2011-2022 走看看