https://www.luogu.com.cn/record/125996361
#include <iostream>
using namespace std;
int n, val[260], winner[260];
void dfs(int x)
{
if (x > 1 << n)
return;
dfs(2 * x);
dfs(2 * x + 1);
if (val[winner[2 * x]] > val[winner[2 * x + 1]])
winner[x] = winner[2 * x];
else
winner[x] = winner[2 * x + 1];
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> n;
for (int i = 1; i <= 1 << n; i++)
{
cin >> val[i];
winner[(1 << n) + i] = i;
}
dfs(1);
cout << (val[winner[2]] > val[winner[3]] ? winner[3] : winner[2]) << "\n";
return 0;
}