Crying 与哈密顿路
题号:NC264896
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

Crying 正在寻找一张图的哈密顿路。

他首先给了你一棵  个点的有根树,根为 ,第  个点有点权 

通过这棵树,他要构造一张  个点的边有权的无向完全图,其中边  的权值为先前的有根树上  的最近公共祖先的点权。

他想要你在新构造的这张图上找到经过的边的边权和最大的哈密顿路(即一条恰好经过每个一次的路径),不过你只需给出这个边权和即可。

输入描述:

第一行,一个正整数 

第二行, 个整数 

第三行, 个正整数 ,其中  表示有根树上  的父亲。

对于所有数据,

输出描述:

一行,一个整数,表示最大的边权和。
示例1

输入

复制
5
-1 2 -3 4 -5
1 1 3 3

输出

复制
-4

说明

一种可行的路径是 ,其中每条边边权都为 

可以证明没有更优解。

示例2

输入

复制
15
-13 3 -9 3 -12 4 3 9 3 -4 11 12 -13 -10 15
1 1 2 3 5 1 4 7 4 3 4 4 8 5

输出

复制
-48