C1084 [Contest #5]迫真树

内存限制:256 MB 时间限制:5000 ms

题目描述

H君有一棵大小为 $n$ 的树,由于树是H君种的,所以很高,H君想删掉一些节点,这样它就不那么高了。

H君定义一棵树的H度为:树上所有简单路径中,点数最多的简单路径的点数数量。

他决定删去树上的一些节点,这样原先的树会变成一个包含若干棵树的森林。H君定义一个森林的H度是森林里所有树中H度最大的树的H度值,H君想要最小化删掉节点后的森林的H度。

特殊地,如果所有节点都被删除,H度为 $0$。

由于H君过于疲惫,现在的他删掉树上的每一个节点都要花费一些力气,具体来说H君删掉树上第 $i$ 个节点需要花费 $a_i$ 的力气。H君现在只有 $m$ 的力气,所以H君删掉的节点 $a_i$ 之和不能大于 $m$。

请你帮H君算出他能最小化的森林的H度。

输入格式

第一行两个数 $n, m$。

第二行 $n$ 个数 $a_i$。

接下来 $n - 1$ 行,每行两个数 $x, y$ ,表示树上的一条边。

数据范围:

$0\leq a_i, m \leq 10^9$。

除了样例以外的 $n$ 都是 $10^5$。

输出

第一行一个数,表示最小化的删完节点后的森林的H度。

样例

样例输入 1

6 4 1 1 4 5 1 4 1 2 1 4 3 4 4 5 5 6

样例输出 1

2

样例输入 2

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

样例输出 2

2

样例输入 3

1 0 0

样例输出 3

0

提示

样例解释 1:

可行的最优解: 删除节点 $1, 2, 5$, 花费代价为 $3$, 森林的H度为 $2$。

样例解释 2:

可行的最优解: 删除节点 $1, 3, 6$ 花费代价为 $3$, 森林的H度为 $2$。

样例解释 3:

可行的最优解: 删除节点 $1$ 花费代价为 $0$, 森林的H度为 $0$。