• CodeForces


     Table Tennis 

    n people are standing in a line to play table tennis. At first, the first two players in the line play a game. Then the loser goes to the end of the line, and the winner plays with the next person from the line, and so on. They play until someone wins k games in a row. This player becomes the winner.


    For each of the participants, you know the power to play table tennis, and for all players these values are different. In a game the player with greater power always wins. Determine who will be the winner.


    Input
    The first line contains two integers: n and k (2 ≤ n ≤ 500, 2 ≤ k ≤ 1012) — the number of people and the number of wins.


    The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ n) — powers of the player. It's guaranteed that this line contains a valid permutation, i.e. all ai are distinct.


    Output
    Output a single integer — power of the winner.


    Example
    Input
    2 2
    1 2
    Output

    Input
    4 2
    3 1 2 4
    Output

    Input
    6 2
    6 5 3 1 2 4
    Output

    Input
    2 10000000000
    2 1
    Output
    2
    Note
    Games in the second sample:


    3 plays with 1. 3 wins. 1 goes to the end of the line.


    3 plays with 2. 3 wins. He wins twice in a row. He becomes the winner.

    题意:如果a>b,a就赢了当a赢了k次,就输出a;

    思路:记录每个赢得人赢得次数,谁赢了k次就输出

    #include<stdio.h>
    #include<algorithm>
    #include<iostream>
    #include<string.h>
    using namespace std;
    int a[1000];
    int b[1000];
    int main()
    {
        int n;
        long long k;
        scanf("%d%lld",&n,&k);
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        for(int i=0; i<n; i++)
        {
            scanf("%d",&a[i]);
        }
        int x=0;
        for(int i=1; i<n; i++)
        {
            if(a[x]>a[i]&&a[i]!=-1)
            {
                a[i]=-1;
                b[x]++;
    
            }
            else if(a[x]<a[i]&&a[i]!=-1)
            {
                x=i;
                b[x]++;
            }
            if(b[x]==k)
            {
                printf("%d
    ",a[x]);
                return 0;
            }
            //cout<<x<<endl;
        }
        printf("%d
    ",a[x]);
    }
    
    


  • 相关阅读:
    tomcat监控
    rsync排除文件同步
    [转载]centos7 快速安装 mariadb(mysql)
    linux下的头文件和库文件搜索路径 (转)
    用apt-get install一个软件的时候出现错误: 无法解析或打开软件包的列表或是状态文件
    模拟一个简单的基于tcp的远程关机程序(转)
    TCP连接的建立以及利用tcpdump分析连接建立的过程(转)
    UNIX网络编程(转载)
    开源代码网站(转)
    学了5天Arm,今天谈谈初学感受 (转)
  • 原文地址:https://www.cnblogs.com/da-mei/p/9053316.html
Copyright © 2020-2023  润新知