如题
#include<bits/stdc++.h>
using namespace std;
int arr[101000],n,ans=0;
int bi=1;
struct Cy{
int l,r,minn,ld;
}t[100100*4+1];
void fuckbuild(int a,int b,int k){
t[k].l=a,t[k].r=b;
if(t[k].l==t[k].r){
t[k].minn=arr[bi];
bi++;
return;
}
int m=(a+b)/2;
fuckbuild(a,m,2*k);
fuckbuild(m+1,b,2*k+1);
t[k].minn=max(t[2*k].minn,t[2*k+1].minn);
}
int main(){
cin>>n;
int r=pow(2,n);
for(int i=1;i<=r;i++){
cin>>arr[i];
}
fuckbuild(1,r,1);
int st=min(t[3].minn,t[2].minn);
for(int i=1;i<=n;i++){
if(arr[i]==st){
cout<<i;
return 0;
}
}
}