我想要种一棵香蕉树

我想要种一棵香蕉树

题目北京

Banana 的爱好是种树,尤其喜欢种香蕉树~

题目描述

Banana 的香蕉树由 nn 个分叉点和 n1n-1 条树枝组成,可以看作是一个 nn 个点 n1n-1 条边的无向连通图。

Banana 花园的土地很神奇,富含有极高的营养成分,这些营养会被树根吸收,然后沿着树枝传递到各个分叉点。但是营养在传递过程中会损耗。具体的,令 rtrt 为根节点,d(x,y)d(x,y) 表示 xxyy 要经过的树枝数,则分叉点 xx 会获得 Cd(rt,x)C-d(rt,x) 点营养。

在丰富营养的滋养下,每天树上都会长满香蕉。假设分叉点 ii 获得了 cic_i 点营养,则这个点上会长 ai×cia_i\times c_i 根香蕉。

现在 Banana 想知道每天树上总共会长多少根香蕉。然而由于香蕉树太大了,Banana 不知道那个是根,所以他想知道对于每个 i[1,n]i\in [1,n],如果分叉点 ii 是根的话,一天会长多少根香蕉?

输入格式

第一行两个整数 n,Cn,C

第二行 nn 个整数,第 ii 个数是 aia_i

接下来 n1n-1 行,每行两个整数 x,yx,y,表示一条连接分叉点 xxyy 的树枝。数据保证所有树枝会形成一棵树。

输出格式

nn 行,第 ii 行表示以分叉点 ii 为根时一天长的香蕉数。

样例

输入样例 #1

4 4
1 2 3 4
1 2
1 3
2 4

输出样例 #1

27
29
23
27

数据范围

1n1051\leq n\leq 10^5nC106n\leq C\leq 10^60ai1070\leq a_i\leq 10^7

信息

ID
1003
难度
4
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
上传者