描述
圣诞节就要到了,同学准备了一个超级好玩儿的游戏--代码接力,acmer排成一队。首先,前两名acmer玩游戏。然后失败者走到队尾,
赢得acmer将和下一个acmer比赛,等等。直到有acmer连续赢得n场比赛,则这个acmer成为赢家,将获得为TA准备的圣诞礼物。
对于每个参与的acmer,我们都知道其敲代码的能量,在一场比赛中,能量强大的acmer获胜,如果能量相同,后来者获胜,
确定谁能获得精心准备的礼物。
I/O格式
输入
第一行包括两个整数:m和n( 2<=m<=500,2<=n<=10^12)--表示acmer的人数和赢得数目。
第二行包括m个数字 a1,a2,...,am(1<=ai<=m)--表示m个acmer的能量。
输出
输出一行--获胜者的能量。
I/O样例
输入样例 1
2 2 1 2 4 2 3 1 2 4 6 2 6 5 3 1 2 4
输出样例 1
2 3 6
实现
本题考虑采用双指针思想
#include<stdio.h>
#define MAX 500
int main() {int m;long n;while(scanf("%d %ld", &m, &n) != EOF) {long a[MAX + 1];for(long i = 1; i <= m; i++) {scanf("%ld", &a[i]);}long winner = 1,wins = 0;//winner:获胜者下标 wins:获胜次数for(long i = 2; i <= m; i++) {if(a[i] > a[winner]) {winner = i;wins = 1;} else {wins++;}if(wins == n) {break;}}printf("%ld\n", a[winner]);}return 0;
}