| 记录编号 |
614905 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
淘汰赛 |
最终得分 |
100 |
| 用户昵称 |
张宸汉 |
是否通过 |
通过 |
| 代码语言 |
C++ |
运行时间 |
0.028 s |
| 提交时间 |
2026-04-18 14:41:50 |
内存使用 |
3.70 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int main()
{
freopen("knockout.in","r",stdin);
freopen("knockout.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
int total = 1 << n; // 等价于 2^n,整数位运算,无浮点精度误差
int half = total / 2; // 左右半区分界线
int val[130]; // 下标代表国家编号,值代表能力
for(int i = 1; i <= total; i++)
{
cin >> val[i];
}
// 寻找左半区(1~half)能力最强的编号
int maxL = -1, idL = 0;
for(int i = 1; i <= half; i++)
{
if(val[i] > maxL)
{
maxL = val[i];
idL = i;
}
}
// 寻找右半区(half+1~total)能力最强的编号
int maxR = -1, idR = 0;
for(int i = half + 1; i <= total; i++)
{
if(val[i] > maxR)
{
maxR = val[i];
idR = i;
}
}
// 两者中能力更小的就是亚军
if(maxL < maxR) cout << idL;
else cout << idR;
return 0;
}