输入样例:
7
1 6 5 4 3 2 1
输出样例:
2
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int que[N];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&que[i]);
}
long long num=2;//该层数字个数
long long sum=0;//该层权数之和
int du=1;//这是第几层
int ji=1;//和最大的层数是多少
int imax=que[1];//最大层的权值之和
for(int i=2;i<=n;){
sum=0;
int j;
du++;
for(j=i;j<i+num&&j<=n;j++){
sum+=que[j];
}
if(sum>imax){
ji=du;
imax=sum;
}
num*=2;
i=j;
}
cout<<ji<<endl;
return 0;
}