#CF580C. Kefa and Park

Kefa and Park

题目描述

每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节

Kefa 决定去餐厅庆祝他的第一笔大薪水。

他住在一个不寻常的公园旁边。这个公园是一棵有根树,包含 nn 个顶点,根节点为 11。顶点 11 也是 Kefa 的家。不幸的是,公园里还有猫。Kefa 已经知道了哪些顶点有猫。

公园的叶子节点是餐厅。Kefa 想选择一个餐厅去,但不幸的是他非常害怕猫,所以如果从餐厅到他家的路径上包含 超过 mm 个连续的有猫的顶点,他就不会去那个餐厅。

你的任务是帮助 Kefa 计算他可以去的餐厅的数量。

输入格式

第一行包含两个整数 nnmm2n1052 \le n \le 10^51mn1 \le m \le n)—— 树的顶点数和 Kefa 能容忍的连续有猫顶点的最大数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,其中 ai=0a_i = 0 表示顶点 ii 没有猫,ai=1a_i = 1 表示顶点 ii 有猫。

接下来 n1n-1 行,每行包含一条边,格式为 x_i y_i1xi,yin1 \le x_i, y_i \le nxiyix_i \ne y_i),表示顶点 xix_iyiy_i 之间有一条边。

输入保证给出的边构成一棵树。

输出格式

输出一个整数 —— 从 Kefa 的家到该叶子节点的路径上,连续有猫的顶点数不超过 mm 的叶子节点的数量。

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

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

说明

在第一个样例中,有猫的顶点标记为红色。餐厅位于顶点 223344。Kefa 不能去顶点 22 处的餐厅。

在第二个样例中,餐厅位于顶点 44556677。Kefa 不能去顶点 6677 处的餐厅。。