我想要种一棵香蕉树

我想要种一棵香蕉树

题目北京

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

题目描述

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

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

在丰富营养的滋养下,每天树上都会长满香蕉。假设分叉点 \(i\) 获得了 \(c_i\) 点营养,则这个点上会长 \(a_i\times c_i\) 根香蕉。

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

输入格式

第一行两个整数 \(n,C\)。

第二行 \(n\) 个整数,第 \(i\) 个数是 \(a_i\)。

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

输出格式

共 \(n\) 行,第 \(i\) 行表示以分叉点 \(i\) 为根时一天长的香蕉数。

样例

输入样例 #1

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

输出样例 #1

27
29
23
27

数据范围

\(1\leq n\leq 10^5\),\(n\leq C\leq 10^6\),\(0\leq a_i\leq 10^7\)

信息

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