#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<queue>
#include<math.h>
//本题用队列实现
using namespace std;
struct cou
{
int num;
int abl;
};
queue<struct cou> q;
void bfs()
{
while(q.size() > 2)//队列中的元素个数大于2
{
struct cou d = q.front();
q.pop();
struct cou dp = q.front();
q.pop();
if(d.abl < dp.abl)
q.push(dp);
else
q.push(d);//每次将实力较大的国家重新进队
}
if(q.size() == 2)
{
struct cou d = q.front();
q.pop();
struct cou dp = q.front();
q.pop();
if(d.abl < dp.abl)
printf("%d\n",d.num);
else
printf("%d\n",dp.num);
}
}
int main()
{
int n;
scanf("%d",&n);
struct cou d;
for(int i = 0;i < pow(2,n);i ++)
{
scanf("%d",&d.abl);
d.num = i + 1;
q.push(d);
}
bfs();
return 0;
}
洛谷p4715 循环赛
最新推荐文章于 2024-09-26 09:55:13 发布