问题描述:
给定一棵拥有n个结点的完全二叉树,树上每个结点都有一个权值,按从上到下、从左到右的顺序依次是A1,A2……An,如下图所示
现在小明要把相同深度的结点的权值加起来,他想知道哪个深度的结点权值之和最大?如果有多个深度的结点权值之和同为最大,请你输出其中最小深度。注:根的深度是1。
输入格式:
第一行包含一个整数N
第二行宝含N个整数A1,A2,……An
输出格式
输出一个整数代表答案
思路
边输入边处理,每一行的最后一个数的下标都是等于(2^n)-1,比如第二行的最后一个数等于2 ^2-1=3,第三行的最后一个数等于2 ^3-1=7,用deep表示当前深度,从当前这行的第一项加到最后一项然后和最大值max_sum比较.
#include<bits/stdc++.h>
using namespace