#P5865. [SEERC 2018] Tree

[SEERC 2018] Tree

题目描述

给定一棵 nn 个点的树,点的编号从 11 到 nn。每个点有黑色或白色的颜色。选出恰好 mm 个黑点,使得黑点两两之间的距离的最大值最小。输出这个最小的最大值。

输入格式

第一行包含两个整数 nn 和 m (1≤m≤n≤100)m \ (1 \leq m \leq n \leq 100),代表树的点数和要选出的黑点数量。

第二行包含 nn 个整数 p1,p2,…,pn (0≤pi≤1)p_1, p_2, \dots, p_n \ (0 \leq p_i \leq 1)。如果 pi=1p_i=1 则点 ii 是黑色的,否则是白色的。数据保证黑点有不少于 mm 个。

接下来 n−1n-1 行每行包含两个整数 viv_i 和 ui (1≤vi,ui,≤n)u_i \ (1 \leq v_i, u_i, \leq n),代表树上有一条连接点 viv_i 和 uiu_i 的边。数据保证这些边构成一棵树。

输出格式

输出一个整数,代表答案。

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

提示

第一个样例中,唯一的选法是选点 1,21, 2 和 44,距离的最大值为 22。

第二个样例中,可行的一种选法是选点 1,3,81, 3, 8 和 99,最大的距离是点 33 和 99 的距离。