#CF580C. Kefa and Park
Kefa and Park
题目描述
每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节
Kefa 决定去餐厅庆祝他的第一笔大薪水。
他住在一个不寻常的公园旁边。这个公园是一棵有根树,包含 个顶点,根节点为 。顶点 也是 Kefa 的家。不幸的是,公园里还有猫。Kefa 已经知道了哪些顶点有猫。
公园的叶子节点是餐厅。Kefa 想选择一个餐厅去,但不幸的是他非常害怕猫,所以如果从餐厅到他家的路径上包含 超过 个连续的有猫的顶点,他就不会去那个餐厅。
你的任务是帮助 Kefa 计算他可以去的餐厅的数量。
输入格式
第一行包含两个整数 和 (,)—— 树的顶点数和 Kefa 能容忍的连续有猫顶点的最大数量。
第二行包含 个整数 ,其中 表示顶点 没有猫, 表示顶点 有猫。
接下来 行,每行包含一条边,格式为 x_i y_i(,),表示顶点 和 之间有一条边。
输入保证给出的边构成一棵树。
输出格式
输出一个整数 —— 从 Kefa 的家到该叶子节点的路径上,连续有猫的顶点数不超过 的叶子节点的数量。
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
说明
在第一个样例中,有猫的顶点标记为红色。餐厅位于顶点 、、。Kefa 不能去顶点 处的餐厅。

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