在一个城市中有诸多结点,每个结点写着一个整数,表示走到该点所能获得的金币数(如果为负数,则表示走到此结点时,需要扣除金币)。
城市中的结点是双向的,并且按照一定的规律给出。如给出某城市中的结点如下:
a b c d e f g
则起始的结点为a,a的下一个结点为b和c,并且你可以从a走向b或者c,也可以反向走。b的下一个结点为d和e... 即序号为i的结点的下一个结点的序号是2i和2i+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
时间限制 | 1 秒 |
内存限制 | 128 MB |