森林巡逻队

题目描述

在一片广阔的森林中,乐柠兔 与 噜噜 一起担任森林巡逻队成员。

森林中的小径结构是一棵拥有 nn 个节点的有根树,根节点为编号 11 的巡逻总站,也就是乐柠兔 与 噜噜 每天的出发地。

然而,森林深处潜伏着一些危险区域。具体来说:

  • 若某个节点被标记为 1,表示该位置存在危险因子;
  • 若标记为 0,则该区域安全。

巡逻队需要调查森林中所有的 边缘哨点 —— 也就是没有子节点的叶子节点。

但出于安全考虑,若从总站到某个哨点的路径中,出现了超过 mm连续的危险区域,乐柠兔 就认为该路线过于凶险,将不会前往。

你的任务是:

统计有多少个哨点能够被安全地巡逻(路径上最多出现 mm 个连续危险点)。

PS:每次巡逻完成后都会回到总站,休息一段时间后再次巡逻,最多可以巡逻多少个哨点?


输入格式

第一行输入两个整数 nnmm(2n21051mn)(2 ≤ n ≤ 2*10^5 , 1 ≤ m ≤ n),分别表示森林的节点数量,以及巡逻路径上允许出现连续危险区域的最大数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,其中:

  • ai=0a_i = 0 表示节点 ii 安全;
  • ai=1a_i = 1 表示节点 ii 危险。

接下来输入 n1n-1 行,每行包含两个整数 xix_iyiy_i,(1xi,yin,xiyi1 ≤ x_i, y_i ≤ n , x_i ≠ y_i),表示节点 xix_i 与节点 yiy_i 之间存在一条森林小径。

保证输入描述的结构为一棵树。


输出格式

输出一个整数,表示从巡逻总站(1号节点)出发,在路径上最多允许出现 mm 个连续危险节点的前提下,能够安全巡逻的 叶子节点数


输入输出样例 #1

输入 #1

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

输出 #1

2

输入输出样例 #2

输入 #2

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

输出 #2

2

说明/提示

样例中:

  • 第一组数据中,节点 3 的路径有两个连续危险点,超过 m=1m = 1,因此不可前往;节点 2、4 均可安全到达。
  • 第二组数据中,节点 3、6的路径中均出现两连危险,因此不可前往;节点 4、5 可安全到达。

相关

在下列比赛中:

「果壳杯」 ROUND 32 (Div. 3)