在达芬奇时代,有一个流行的儿童游戏称为连珠线。当然,这个游戏是关于珠子和线的。线是红色或蓝色的,珠子被编号为
- Append(w, v):一个新的珠子
和一个已经添加的珠子 用红线连接起来。 - Insert(w, u, v):一个新的珠子
插入到用红线连起来的两个珠子 之间。具体过程是删去 之间红线,分别用蓝线连接 和 。
每条线都有一个长度。游戏结束后,你的最终得分为蓝线长度之和。
给你连珠线游戏结束后的游戏局面,只告诉了你珠子和链的连接方式以及每条线的长度,没有告诉你每条线分别是什么颜色。
你需要写一个程序来找出最大可能得分。即,在所有以给出的最终局面结束的连珠线游戏中找出那个得分最大的,然后输出最大可能得分。
输入格式
第一行一个正整数
接下来
输出格式
输出一个整数,表示最大可能得分。
样例一
input
5 1 2 10 1 3 40 1 4 15 1 5 20
output
60
explanation
可以通过如下方式获得
- 把
和 连起来。(线长度任意) - 在
和 之间插入 。(线长分别为 和 )。 - 把
和 用长度为 的线连起来。 - 把
和 用长度为 的线连起来。
样例二
input
10 4 10 2 1 2 21 1 3 13 6 7 1 7 9 5 2 4 3 2 5 8 1 6 55 6 8 34
output
140
explanation
限制与约定
第一个子任务共 13 分,满足
第二个子任务共 15 分,满足
第三个子任务共 29 分,满足
第四个子任务共 43 分,满足
时间限制:
空间限制: