2100. DFS 序 / Dfs order

给定一棵 nn 个点的有根树,11 号点为根。每个点有一个权值 wiw_i

求一个最优的 DFS 序使得 i=1npiwi\sum\limits_{i=1}^n p_iw_i 最大。其中 pip_i 表示访问第 ii 个点的时刻,即第一次访问节点 ii 之前访问过多少个不同的节点(包含节点 ii 本身)。

输入

第一行一个正整数 n(1n2×105)n(1\le n \le 2\times 10^5)

第二行 nn 个正整数,其中第 ii 个表示 wi(1wi108)w_i(1\le w_i \le 10^8)

第三行 n1n-1 个正整数,其中第 ii 个表示 i+1i+1 号节点的父亲,保证取值在 1i1\sim i 之间。

输出

一行一个整数,表示最大的 i=1npiwi\sum\limits_{i=1}^n p_iw_i

样例

标准输入 复制文本
5
8 5 3 6 4
1 1 3 3
标准输出 复制文本
75

提示

按照 (1,3,5,4,2)(1,3,5,4,2) 的访问顺序可以取得最大值 1×8+2×3+3×4+4×6+5×5=751\times 8+2\times 3+3\times 4+4\times 6+5\times 5=75

注意 (1,3,2,4,5)(1,3,2,4,5) 不是一个合法的访问顺序。

登录以提交代码。
单点时限 1 秒
内存限制 512 MB
提交 11
通过 4