返回小组 开始 2019-09-01 08:30:00

201908月赛(提高组)

结束 2019-09-01 13:00:00
Contest is over.
当前 2024-11-22 11:00:41

D. 捡金币

描述

在一个城市中有诸多点,每个点写着一个整数,表示走到该点所能获得的金币数(如果为负数,则表示走到此点时,需要扣除金币)。

城市中的结点是双向的,并且按照一定的规律给出。如给出某城市中的结点如下:

a b c d e f g

则起始的结点为aa的下一个结点为bc,并且你可以a走向b或者c也可以反向走。b的下一个结点为de... 即序号为i的结点的下一个结点的序号是2i2i+1

你的任务是从任意结点开始,任意选择一条路径,使经过该路径所获得的金币最多。 
注意:该路径至少包含一个点,且不一定经过起始节点。

输入

第一行包含一个正整数n,表示点数。 
第二行输入n个整数,表示每个点的金币数k。如果不是数字,而是符号“N”,则表示该点不存在。

输出

单条路径所获的最大金币数。

样例

输入

3
1 2 3

输出

6

输入

7
-10 9 20 N N 15 7

输出

42

提示

对于100%数据:0<n<1200, -201<k<201


Submit

登录

注册
时间限制 1 秒
内存限制 128 MB
提交