AcWing 1240. 完全二叉树的权值_java代码
原题链接
简单
作者:
health_1
,
2025-03-24 23:39:21
·江西
,
所有人可见
,
阅读 1
import java.util.Arrays;
import java.util.Scanner;
class Main{
private static int n;
private static int[] a = new int[100010];
public static void main(String[] args){
Scanner input = new Scanner(System.in);
n = input.nextInt();
for(int i = 1; i <= n; i ++)a[i] = input.nextInt();
int MAXH = n;
long MAXW = -(long)Math.pow(10, 18);
int h = (int) (Math.log(n)/Math.log(2)) + 1;
for(int i = 1; i <= h; i ++) {
long w = 0;
for(int j = 1; j <= n; j ++) {
int nh = (int) (Math.log(j)/Math.log(2)) + 1;
if(nh == i) {
w += (long)a[j];
}
if(nh > i) break;
}
if(w > MAXW) {
MAXW = w;
MAXH = i;
}
}
System.out.println(MAXH);
}
}