TIJIE
2024-03-23 10:30:47
发布于:广东
11阅读
0回复
0点赞
#include <iostream>
#include <queue>
using namespace std;
long long a[100001];
queue<long long> q; //创建队列
int main()
{
long long n,k,cnt=1;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
q.push(a[i]);
}
int first_num=q.front(); //设 first_num等于队头元素
q.pop(); //删除队头元素
while(cnt<=k)
{
if(first_num>q.front()) //如果first_num大于现在的队头元素
{
cnt++; //赢得次数加1
q.push(q.front()); //把比较后的队头元素插入(复制)到队尾 (队头还未删除)
q.pop(); //删除队头元素
}
else if(first_num<q.front()) //如果first_num小于现在的队头元素
{
cnt=1; //证明队头元素赢了,所以次数加1
q.push(first_num); //把比较后的first_num插入到队尾
first_num=q.front(); //设 first_num等于队头元素(队头还未删除)
q.pop(); //删除队头元素
}
}
cout<<first_num; //输出赢家的能量值
}
这里空空如也
有帮助,赞一个