【Codeforces Round #443 (Div. 2) B】Table Tennis

【链接】 我是链接,点我呀:)
【题意】

n个人站在一排。 每次第一个人和第二个人打架。 输的人跑到队列的尾巴去。 然后赢的人继续在队首.和第三个人打。 谁会先赢K次。

【题解】

会发现,一轮之后就一直是那个最大的赢了。 则第一轮先模拟,有人达到k次就直接输出它。 否则输出那个最大的就好。

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int N = 500;

ll k;
int n;
int a[N+10];
int win[N+10];

int main(){
//	freopen("rush.txt","r",stdin);
	scanf("%d%lld",&n,&k);
	for (int i = 1;i <= n;i++)
		scanf("%d",&a[i]);
	int now = a[1];
	for (int i = 2;i <= n;i++){
		if (a[i] < now){
			win[now]++;
			if (win[now]==k){
				printf("%d
",now);
				return 0;
			}
		}else{
			now = a[i];
			win[now]++;
						if (win[now]==k){
				printf("%d
",now);
				return 0;
			}

		}
	}
	printf("%d
",now);
	return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/7741593.html