题目
题解
二叉树第i层有2^(i-1)次方个节点,所以遍历这这些节点即可
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,a[N];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
int maxs=-1e8;
int depth=0;
for(int i=1,d=1;i<=n;i*=2,d++){
long long s=0;
for(int j=i;j<i+(1<<d-1)&&j<=n;j++)
s+=a[j];
if(s>maxs){
maxs=s;
depth=d;
}
}
cout<<depth<<endl;
return 0;
}