1、4、5 RE了,2、3 对了,求大佬指点迷津~
#include<bits/stdc++.h>
using namespace std;
vector <int> ve;
int n,x;
struct foot{
int x;
int num;
}a[501];
int main(){
cin>>n;
n=pow(2,n);
ve.push_back(0);
for(int i=1;i<=n;i++){
cin>>x;
a[i].x=x;
a[i].num=i;
ve.push_back(x);
}
while(n>2){
for(int i=2;i<=n;i+=2){
if(ve[i]>ve[i-1]) ve.erase(ve.begin()+i-1);
else ve.erase(ve.begin()+i);
}
n/=2;
}
if(ve[2]>ve[1]) ve.erase(ve.begin()+2);
else ve.erase(ve.begin()+1);
for(int i=1;i<=n;i++){
if(a[i].x==ve[i]){
cout<<a[i].num;
return 0;
}
}
}