给定一棵包含n个结点的完全二叉树,树上每个结点都有一个权值,按从上到下、从左到右的顺序依次是 w1,w2,…,wn。请你计算一下哪个深度的结点权值之和最大?已知深度从1开始逐层增1。
输入格式:
输入第一行为一个正整数n(1≤N≤100000),代表结点的个数。 第二行n个整数,代表n个权值w1,w2,…,wn(−100000 ≤ wi≤ 100000),每两个整数之间用一个空格隔开。
输出格式:
出分两行,第一行给出最大的权值之和,第二行输出对应的深度,如果有多个深度的权值和同为最大,请在一行中按照从小到大顺序输出所有深度,空格分割,行末不带空格。
输入样例1:
7
1 6 5 4 3 2 1
输出样例1:
11
2
输入样例2:
6
1 4 5 4 3 2
输出样例2:
9
2 3
#include <stdio.h>
int MAX_DEEP = 18;
long long temp[19];
int getDeep(int n) {
int res = 0;
while