#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <cstring>
#include <set>
#include <cmath>
#include <map>
#include <cctype>
#include <cstdlib>
#include <deque>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int MN = 65005;
const int MAXN = 1000010;
const int INF = 0x3f3f3f3f;
#define IOS ios::sync_with_stdio(false)
#define lowbit(x) ((x)&(-x))
struct node {
int val, id;
};
node maxt(node a, node b) {
return a.val > b.val ? a : b;
}
int mint(node a, node b) {
return a.val < b.val ? a.id : b.id;
}
node a[MAXN], tree[MAXN];
inline void build(int ver, int st, int ed) {
if (st == ed) {
tree[ver] = a[st];
return ;
}
int mid = st + ed >> 1;
build((ver << 1), st, mid);
build((ver << 1) + 1, mid + 1, ed);
tree[ver] = maxt(tree[ver << 1], tree[(ver << 1) + 1]);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= (1 << n); i++) {
scanf("%d", &a[i].val);
a[i].id = i;
}
build(1, 1, 1 << n);
printf("%d", mint(tree[2], tree[3]));
return 0;
}
P4715 【深基16.例1】淘汰赛(完全二叉树)
最新推荐文章于 2022-12-28 23:04:04 发布