由于是一棵完全二叉树
ceil(log(n+1)/log(2)计算出满二叉树的层数
pow(2,i-1)第i层有2^(i-1)个节点
#include <iostream>
#include <cmath>
using namespace std;
const int N = 1e6+10, INF = 0x3f;
int a[N], n;
int main(){
cin>>n;
int maxval = -INF, ans = 0, idx = 1;
for(int i=1; i<=n; i++) scanf("%d",&a[i]);
for(int i=1; i<=ceil(log(n+1)/log(2)); i++){
int sum = 0;//每层的权和
for(int j=1; j<=pow(2,i-1); j++){
sum += a[idx++];
}
if(maxval < sum){
ans = i;
maxval = sum;
}
}
cout<<ans<<endl;
return 0;
}