没必要,简单的贪心就过了\
我的代码:
```c
#include<bits/stdc++.h>
using namespace std;
int n,max1=INT_MIN,max2=INT_MIN,a,max1_i,max2_i;
int main()
{
cin>>n;
n=pow(2,n-1);
for(int i=1;i<=n;++i)
{
cin>>a;
if(a>max1)
max1=a,
max1_i=i;
}
for(int i=1;i<=n;++i)
{
cin>>a;
if(a>max2)
max2=a,
max2_i=i+n;
}
if(max1>max2)
cout<<max2_i;
else
cout<<max1_i;
}
```
by Undertale_chara @ 2023-08-22 09:28:15
@[weiyuangji](/user/760712)
因为最后的冠军、亚军一定是前半个序列和后半个序列里出的,记录前半个序列的最大值及其编号,记录后半个序列的最大值及其编号,比较一下就出来了
by Undertale_chara @ 2023-08-22 09:32:56
@[Undertale_chara](/user/988003) 感谢
by _fox_ @ 2023-08-22 12:54:56