题目描述
有 2^n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?
输入格式
第一行一个整数 n,表示一共 2^n 个国家参赛。
第二行 2^n 个整数,第 i 个整数表示编号为 i 的国家的能力值(11≤i≤2^n)。
数据保证不存在平局。
输出格式
仅一个整数,表示亚军国家的编号。
输入输出样例
输入 #1
3
4 2 3 1 10 5 9 7
输出 #1
1
利用队列的原理特性解决即可
代码如下:
from collections import deque
n = int(input())
q = deque()
lst = list(map(int, input().split()))
for i in lst:
q.append(i)
while len(q) > 2:
a, b = q.popleft(), q.popleft() # 比赛双方出队
n = max(a, b) # 能力值大者,再次入队
q.append(n)
print(lst.index(min(q)) + 1) # 亚军所在的队伍序号