这道题可以用二叉树
~~可惜我不会~~
但可以用 STL的队列+结构体
话不多书,上代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct node{
int a,sp;
};
bool operator < (node x,node y){
return x.a<y.a;
}
int n;
queue<node>q;
int main() {
cin>>n;
for(int i=1;i<=(1<<n);i++){
node x;
cin>>x.a;
x.sp=i;
q.push(x);
}
while(q.size()>2){
node u1=q.front();q.pop();
node u2=q.front();q.pop();
if(u2<u1){
q.push(u1);
}
else{
q.push(u2);
}
}
node u1=q.front();q.pop();
node u2=q.front();q.pop();
if(u1<u2){
cout<<u1.sp;
}
else{
cout<<u2.sp;
}
return 0;
}
by Libingyue2011 @ 2023-01-25 20:21:21