我的思路:每次比较将s数组数量减半,只保留赢家,再用l
保留输家,不断更新,最后一次就是亚军
#include<bits/stdc++.h>
using namespace std;
int u,n=1,l;
int s[500],a[500];
int main(){
cin>>u;
for(int i=0;i<u;i++)n*=2;
for(int i=1;i<=n;i++){
cin>>s[i];
a[s[i]]=i;
}
for(;n>=2;n/=2){
for(int j=1;j<=n;j+=2){
l=min(s[j],s[j+1]);
s[j/2+1]=max(s[j],s[j+1]);
}
}
cout<<a[l];
return 0;
}