题目描述
给定一棵有根树, 树根定义为1, 树上每个点有点权$A_i$
对于每个点 $i$ 你需要求出最小的 $p$ 使得 $i$ 点对应的子树内的所有与点 $i$ 的距离 $ <= p $ 的点的权值和 $ S < B_i $
输入描述
第一行一个整数n表示节点数
第二行 $n-1$ 个整数 $f_i$ 表示第 $i+1$ 个点的父亲是 $f_i$
第三行包含n个空格隔开的整数表示$A_i$
第四行包含n个空格隔开的整数表示$B_i$
输出描述
$n$行, 每行一个整数 $W_i$ 表示第 $i$ 个点对应的答案
特别地, 如果不存在满足条件的p, 请输出-1
样例输入:
15 1 2 3 4 3 5 2 7 6 5 11 11 11 5 -5 14 -59 -59 -54 -35 -50 29 -21 -17 -60 -21 -23 -27 -1 -194 -247 -289 -100 -120 -42 -54 28 -22 -16 -126 -20 -23 -27 0
样例输出:
5 4 3 1 1 1 1 -1 -1 0 1 0 -1 -1 0
数据范围
保证 $ 0 < n,m <= 500000, -10^9 <= A_i <= 10^9 ,-10^{18} <= B_i <= 10^{18} , f_i < i $
子任务1:(80分)
保证 $ 0 < n,m <= 1000 $
子任务2:(160分)
保证给定的树是一条链(也就是$f_i=i-1$)
子任务3:(360分)
无其他限制