「EVOI-RD2」童年

题目背景

池塘边的榕树上 知了在声声地叫着夏天 操场边的秋千上 只有蝴蝶儿停在上面 黑板上老师的粉笔还在拼命叽叽喳喳写个不停 等待着下课 等待着放学 等待游戏的童年

题目描述

Charlie 童年时代很喜欢爬树。 有一天,Charlie 准备向一棵高大的苹果树发起挑战。这棵苹果树有 $n$ 个结点,其中结点 $1$ 为树根。 每个结点会有若干个苹果或一个鸟巢。若这个结点上是若干个苹果,则 Charlie 会摘下所有的苹果装入自己的口袋中;若这个结点是鸟巢**且 Charlie 是第一次访问它**,则 Charlie 会给这个鸟巢中的每只鸟儿一个苹果~~不要问鸟儿为什么喜欢苹果~~。 特别地,如果 Charlie 当前口袋中的苹果不足以给该结点的每只鸟儿一个,则他就不会走向这个结点。注意 Charlie 重复经过一个结点时,不会重复采摘苹果,也不会重复给出苹果。 一开始,Charlie 口袋中有 $s$ 个苹果。Charlie 将从树根开始爬树,每次经过一条边到达一个结点,并执行对应的操作(摘苹果或给苹果,根结点的操作也要执行)。Charlie 希望最终拥有的苹果数最多。由于 Charlie 还在忙着爬其他的树,他想请你写个程序帮帮他。

输入输出格式

输入格式


第一行两个整数 $n,s$,含义如上所示。 接下来一行 $n-1$ 个整数,第 $i$ 个整数代表第 $i+1$ 号结点的父亲 $p_i$。 再接下来一行 $n$ 个整数,第 $i$ 个数为 $a_i$。若 $a_i>0$,则代表这个结点有 $a_i$ 个苹果;若 $a_i<0$,则代表这个结点有一个 $|a_i|$ 只鸟儿的鸟巢;若 $a_i=0$,则说明这个结点什么也没有。

输出格式


一行一个整数,代表 Charlie 最终拥有的最多苹果数。

输入输出样例

输入样例 #1

5 0
1 1 2 2
1 1 1 1 1

输出样例 #1

5

输入样例 #2

5 0
1 1 2 2
1 -3 1 2 2

输出样例 #2

2

输入样例 #3

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

输出样例 #3

8

说明

**样例 1 解释:** 可以摘走所有苹果。 **样例 2 解释:** 只能摘走结点 $1,3$ 的苹果,结点 $2$ 因为鸟儿太多无法访问。 **样例 3 解释:** ![样例3解释](https://cdn.luogu.com.cn/upload/image_hosting/hj7eoes3.png) 结点 $1$ 给掉 $2$ 个苹果,先摘完结点 $3,6,7$ 的苹果,此时口袋中有 $6$ 个苹果。再闯过结点 $2$,然后拿走结点 $5$ 的苹果,结点 $4$ 由于鸟儿太多没必要走。 一种最优的具体路径:$1 \rightarrow 3 \rightarrow 6 \rightarrow 3 \rightarrow 7 \rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 5 \rightarrow 2 \rightarrow 1$。 **数据规模与约定** **本题采用捆绑测试。** + Subtask 1 (10 pts):$\, n \leq 10$。 + Subtask 2 (20 pts):$\, n \leq 100$ 。 + Subtask 3 (10 pts):$\, p_i=1$。 + Subtask 4 (30 pts):$\, p_i=i-1$。 + Subtask 5 (30 pts):无特殊限制。 对于 $100\%$ 的数据,$1 \leq n \leq 6000, 1 \leq p_i \lt i, |a_i| \leq 10^9,0 \leq s \leq 10^9$。 --- “记得门前,有两株树,一株是苹果树,还有一株……也是苹果树。”