你是公司里一个包含你在内的 $n$ 名员工的负责人。每名员工都有一个员工 ID,是从 $1$ 到 $n$ 的整数,其中你的 ID 为 $1$。员工通常用 ID 简称:#1,#2 等。除你之外的每名员工都有一个唯一的直接上司,其 ID 小于该员工的 ID。员工的上司关系通过传递性定义如下:
- 如果员工 #i 是员工 #j 的直接上司,则 #i 是 #j 的上司。
- 如果 #i 是 #j 的上司,且 #j 是 #k 的上司,则 #i 是 #k 的上司。
包括你在内的每名员工最初都被分配了恰好一项任务。该任务可以由员工本人完成,也可以由其任意一位上司完成。每名员工可以完成任意数量的任务,但完成过多任务会使员工过于疲劳。形式化地,每名员工 #i 都有一个个人疲劳常数 $f_i$,如果 #i 总共完成了 $m$ 项任务,则 #i 的疲劳度将变为 $f_i \times m^2$。
你的任务是最小化所有 $n$ 名员工的疲劳度之和。
输入格式
输入包含单个测试用例,格式如下:
$n$ $b_2 \ b_3 \ \dots \ b_n$ $f_1 \ f_2 \ \dots \ f_n$
第一行包含整数 $n$,表示员工人数,其中 $2 \le n \le 5 \times 10^5$。第二行包含 $n-1$ 个整数 $b_i$ ($2 \le i \le n$),每个整数表示员工 #i 的直接上司,其中 $1 \le b_i < i$。第三行包含 $n$ 个整数 $f_i$ ($1 \le i \le n$),每个整数表示员工 #i 的疲劳常数,其中 $1 \le f_i \le 10^{12}$。
输出格式
输出所有 $n$ 名员工的疲劳度之和的最小值。
样例
样例输入 1
4 1 1 2 1 1 1 1
样例输出 1
4
样例输入 2
4 1 1 2 1 10 10 10
样例输出 2
16
样例输入 3
4 1 1 2 1 2 4 8
样例输出 3
10
说明
图 J.1. 三个样例的示意图(从左到右)
三个样例的情况和解决方案如图 J.1 所示。
对于样例 1,唯一的最佳方式是每名员工都自己完成自己的任务。也就是说,你只需要对每个人说“自己做!”。
对于样例 2,唯一的最佳方式是员工 #1 完成所有任务。也就是说,你只需要对每个人说“交给我吧!”。
对于样例 3,其中一种最佳方式如下:
1 完成 #1 和 #2 的任务,此时 #1 的疲劳度为 $1 \times 2^2 = 4$。
2 完成 #4 的任务,此时 #2 的疲劳度为 $2 \times 1^2 = 2$。
3 完成其最初分配的任务,此时 #3 的疲劳度为 $4 \times 1^2 = 4$。
4 什么都不做,此时 #4 的疲劳度为 $8 \times 0^2 = 0$。
因此,疲劳度之和为 $4 + 2 + 4 + 0 = 10$。还存在另一种最佳方式,即员工 #1、#2 和 #3 分别完成各自最初分配的任务,且 #1 额外完成了 #4 的任务。