#T0005. 徐老师的吐槽大会(criticize)

徐老师的吐槽大会(criticize)

题目描述

徐老师准备开一场吐槽大会,腹黑的他决定在一家公司内部邀请一部分人来参加。

在这家公司一共有 nn 个人,编号为 1n1 \sim n,每个员工都有一个吐槽值 aia_i,表示他对于吐槽的意愿强度,吐槽值越大,参加吐槽大会时他的表现就会越精彩!

并且每个员工都会有一个直属上司,但是 11 号是这家公司的 CEOCEO,没有上司。

徐老师将在同一个上司手下工作的员工称之为 同事 关系。

由于吐槽大会可能会影响 同事 之间的和睦关系,于是徐老师决定挑选一部分员工来参加吐槽大会,但是这部分员工中不能存在任何两个人是 同事 关系。

但是徐老师深思熟虑以后,又觉得这样也太无聊了,于是腹黑的徐老师决定——可以有人是 同事 关系,但是最多只能出现两个人之间是 同事 关系

现在徐老师想知道,如何选择员工参加吐槽大会,可以满足这些人中最多只有两个人之间是 同事 关系,并且总的吐槽值最小和最大分别是多少?

输入格式

输入第一行包含一个整数 nn,表示公司人数

输入第二行包含 nn 个整数,分别表示每个员工的吐槽值 aia_i

输入第三行包含 n1n-1 个整数,分别表示每个员工的直属上司编号 bi(2in)b_i(2 \leq i \leq n)

输出格式

输出第一行包含一个整数,表示最小的吐槽值之和

输出第二行包含一个整数,表示最大的吐槽值之和

数据范围

测试点编号 nn aia_i
121 \sim 2 10\leq 10 109ai109-10^9 \leq a_i \leq 10^9
353 \sim 5 100\leq 100
676 \sim 7 105\leq 10^5 0ai1090 \leq a_i \leq 10^9
8108 \sim 10 109ai109-10^9 \leq a_i \leq 10^9

对于所有数据满足 1bi<i1 \leq b_i < i

样例输入1

5
1 2 3 4 5
1 1 1 1

样例输出1

0
10

样例解释1

对于最小值:由于所有员工的吐槽值都大于 00,所以不选的吐槽值之和最小

对于最大值:选 1,4,51,4,5 号,其中 4,54,5 是同事关系,所以不能再选其他人了

样例输入1

10
-1 -2 -3 -4 -5 -6 -7 -8 -9 -10
1 1 2 3 2 4 5 6 7

样例输出1

-53
0