#AT1711. C - ABC Tournament
C - ABC Tournament
C - ABC Tournament
得分:300分
问题描述
有$2^N$个选手,标号从1到$2^N$,将在一场单淘汰编程比赛中相互竞争。
选手$i$的等级是$A_i$。任意两个选手的等级不同,而且两个选手之间的比赛结果总是取决于等级较高的选手。
比赛形式是一颗完美二叉树。
具体而言,比赛流程如下:
- 按照顺序进行,对于每个整数$i = 1, 2, 3, \dots, N$,做如下操作:
- 对于整数$j (1 \le j \le 2^{N - i})$,在那些从未输过的选手中,标号为$(2j - 1)$和$2j$的选手进行比赛。
找出将会取得第二名的选手的标号,即在决赛中输掉的选手。
约束
- $1 \le N \le 16$
- $1 \le A_i \le 10^9$
- $A_i$两两不同。
- 输入中的所有值都为整数。
输入
从标准输入中以以下格式给出:
输出
输出将会取得第二名的选手的标号。
2
1 4 2 5
2
首先,选手$1$和选手$2$之间进行一场比赛,选手$3$和选手$4$之间进行一场比赛。根据等级,选手$2$和选手$4$将获胜。
然后,选手$2$和选手$4$之间进行一场比赛,比赛结束时选手$4$成为冠军。
决赛中将会输掉的选手是选手$2$,所以我们应该输出$2$。
2
3 1 5 4
1
首先,选手$1$和选手$2$之间进行一场比赛,选手$3$和选手$4$之间进行一场比赛。根据等级,选手$1$和选手$3$将获胜。
然后,选手$1$和选手$3$之间进行一场比赛,比赛结束时选手$3$成为冠军。
决赛中将会输掉的选手是选手$1$,所以我们应该输出$1$。
4
6 13 12 5 3 7 10 11 16 9 8 15 2 1 14 4
2