2867 - 草地上的羊

题目描述

A 的牧场里有里有多块草地,每块草地上有若干只羊,他的羊群经常在草地之间移动。为了确保每块草地的羊都有足够的草,小李决定不仅要考虑每块草地本身的养羊的数量,还要计算周围草地可能会到来的羊的数量。

牧场包含 N 块草地,这些草地之间通过双向小路相连,总共有 N - 1 条小路,连接了所有的草地。

i 块草地上有 A_i 只羊,小羊可能通过跨越最多 C 条小路去往其他草地。

A 希望为每块草地计算出能到达该草地的最多羊的数量,但他的牧场实在太大了,他不得不求助于聪明的你。

请你编程帮小 A 计算出,对于每块草地,最多能到达该草地的羊的数量。

输入

1 行读入 2 个整数,NC

接下来 N-1 行,每行两个空格分隔的整数 U_i,V_i,表示编号为 U_i 和编号为 V_i 的草地之间有一条双向的小路。

接下来 N 行,每行有一个整数 A_i,表示编号为 i 的草地上羊的数量。

输出

输出 N 行,第 i 行输出的是,对于编号为 i 的草地,最多能到达该草地的羊的数量。

样例

输入

6 2
1 2
1 3
3 4
3 5
5 6
10
20
30
40
50
60

输出

150
60
210
130
190
140

输入

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

输出

36
28
45
15
15
27
46
44
37
34

输入

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

输出

46
46
46
46
46
46
46
46
46
46
说明

样例 1 说明

A6 块草地,每块草地上有 10,20,30,40,50,60 只羊,小羊最多跨越 2 条小路去往其他的草地。

能到达编号为 1 的草地,除了 1 号草地本身的羊以外,还可能来自编号为 2 3 4 5 的草地,一共有 10+20+30+40+50=150 只。

能到达编号为 2 的草地,除了 2 号草地本身的羊以外,还可能来自编号为 1 3 的草地,一共有 20+10+30=60 只。

\dots

数据范围

对于 10\% 的数据,满足所有读入的 V_i 一定相等。

对于另外 10\% 的数据,满足 C=2

对于另外 20\% 的数据,满足1 \le N \le 1001 \le C \le 10

对于 100\% 的数据,满足 1 \le N \le 10^51 \le C \le 201 \le U_i,V_i \le N0 \le A_i \le 1000

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 提高


上一题 下一题