#include <bits/stdc++.h> using namespace std; int main(){ //由于确定是完全二叉树,所以直接按照层进行枚举即可 long long n,maxnum = -3500000000ll,maxlayer,cnt =0,flag=0; cin>>n; for(int layer =0;;layer++){//枚举每一层,从第1层开始进行枚举,层数是layer+1 long long sum =0,a; for(int i=0;i<(1<<layer);i++)//相当于2的layer次方 { cin>> a;//将读入和运算放在一起,减少时间复杂度 sum +=a; if(++cnt >=n){ flag = 1; break;//所有的元素都读完,则跳出 (最后一层) } } if(sum>maxnum)//maxnum一开始取最小值 { maxnum = sum ,maxlayer = layer+1; } if(flag) break; } cout<<maxlayer; return 0; }