代码:
#include<iostream>
using namespace std;
struct A{
int i,t=0;
}a[100001];
int main(){
int n;
cin>>n;
n=2<<(n-1);
for(int i=0;i<n;i++){cin>>a[i].t;a[i].i=i+1;}
int n2=n;
while(1){
int cnt=0;
for(int i=0;i<n2;i+=2) if(a[i].t>a[i+1].t) a[cnt++].t=a[i].t,a[cnt-1].i=a[i].i; else a[cnt++].t=a[i+1].t,a[cnt-1].i=a[i+1].i;
n2=cnt;
if(n2==2) break;
}
if(a[0].t<a[1].t) cout<<a[0].i;
else cout<<a[1].i;
return 0;
}
可能是空间复杂度爆了……
求帮助!