给定一棵 n 个顶点的树,其中第 i(1≤i≤n−1)条边连接了顶点 ui 与 vi(1≤ui,vi≤n),其长度为 wi。
在每个顶点上均埋藏着一棵地雷。第 i(1≤i≤n)个顶点上的地雷的爆炸半径为 Ri ,伤害值为 hi 。
我们定义 dist(i,j) 表示在树上顶点 i 与顶点 j 的最短距离。即,dist(i,j) 为顶点 i 与 j 之间唯一的简单路径的边权之和。
当顶点 i 处的地雷爆炸时,所有距离其不超过 Ri 的地雷都会一起爆炸。即,对于所有满足 dist(i,j)≤Ri 的地雷 j,如果其还没有爆炸,那么他也会被引爆。
对于每个 i(i=1,2,⋯,n),你希望求出,如果在起始时引爆了顶点 i 处的地雷,则最终所有被引爆的地雷的伤害值之和。
输入格式
输入的第一行包含一个整数 n。
接下来一行,包含 n 个整数 h1,h2,⋯,hn,描述每个顶点上地雷的伤害值。
接下来一行,包含 n 个整数 R1,R2,⋯,Rn,描述每个顶点上地雷的半径。
接下来 n−1 行,每行三个整数 ui,vi,wi,描述一条边。
输出格式
输出一行,包含 n 个整数。其中第 i(i=1,2,⋯,n)个整数描述了如果在起始时引爆了顶点 i 处的地雷,则最终所有被引爆的地雷的伤害值之和。
样例数据
样例 1 输入
5
1 10 100 1000 10000
3 2 3 1 3
1 2 3
1 3 1
2 4 3
2 5 2
样例 1 输出
10111 10010 10111 1000 10010
样例 2 输入
9
3 1 4 1 5 9 2 6 5
9 9 8 2 4 4 3 5 3
1 2 9
1 3 10
1 4 5
2 5 7
2 6 8
5 7 6
7 8 3
6 9 10
样例 2 输出
19 19 4 1 5 9 8 8 5
子任务
对于所有数据,1≤n≤105,1≤hi≤109,0≤Ri≤1018,1≤ui,vi≤n,1≤wi≤1012。
子任务编号 | n≤ | 特殊性质 | 分值 |
---|---|---|---|
1 | 100 | 无 | 5 |
2 | 5×103 | 9 | |
3 | 6×104 | 12 | |
4 | hi=1 | 19 | |
5 | 8×104 | 无 | 21 |
6 | 105 | ui=i,vi=i+1 | 11 |
7 | 无 | 23 |