写了奇怪的代码,但是我自己找不到问题
#include<bits/stdc++.h>
using namespace std;
int n,a[200],vis[200],deep,ll[200];
stack<int>qx,qy;
int main(){
cin>>n;
deep=pow(2,n);
for(int i=1;i<=pow(2,n);++i) cin>>a[i];
while(deep!=2){
int num=1;
for(int i=1;i<=pow(2,n);++i){
if(!vis[i]){
if(qx.empty()) {
qx.push(a[i]),qy.push(i);continue;
}
int x=qx.top(),y=qy.top();
if(a[i]>x) ll[num++]=i,vis[y]=1;
else ll[num++]=y,vis[i]=1;
qx.pop();qy.pop();
}
}
deep>>=1;
}
cout<<min(ll[1],ll[2]);
return 0;
}