求助大佬!5个点WA了4个
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn=130;
int n,a[130];
int dfs(int x,int y){
if(x==y){
return x;
}
int x1=dfs(x,x+(y-x)/2);
int y1=dfs(x+(y-x)/2+1,y);
return (x==1&&y==n)?((a[x1]<a[y1])?x1:y1):((a[x1]>a[y1])?x1:y1);
}
int main(){
cin>>n;
for(int i=1;i<=1<<n;i++){
cin>>a[i];
}
//auto f=[](int x,int y){if(x==y) return x;int x1=f(x,x+(y-x)/2);int y1=f(x+(y-x)/2+1,y);return (x==1&&y==n)?((a[x1]<a[y1])?x1:y1):((a[x1]>a[y1])?x1:y1);};
cout<<dfs(1,n)<<endl;
//return 0;
return 0;
}