编程题
### 问题描述 最近,小蓝经常玩的游戏和某个品牌的奶茶店明天早上就要开始联动了,这个品牌的奶茶店会推出一款赠送周边的联动套餐。由于这个品牌奶茶店是全国连锁,所以每家店的联动套餐很少,只有 $k$ 份,并且由于一些奇怪的问题,这个联动套餐只能线下点单。 幸运的是,小明所在的街区就有一家这个品牌的奶茶店,所以小蓝准备明天早上去抢购联动套餐。但是,与此同时,这个街区里也有 $n$ 个人明天早上打算去抢购联动套餐,请你帮小蓝判断一下明天是否能抢到联动套餐。 这个街区可以表示为一棵树,有 $m$ 个节点(节点从1开始),有 $m-1$ 条道路。明天早上,每个人都会从自己所在的节点 $a_i$ 出发(小蓝的家在节点 $p$ ),并选择最短的路径前往奶茶店,每个人在一个单位时间内会从一个节点移动到另一个节点,奶茶店的位置在节点 $x$ 。 小蓝在和其他人同时到店时,小蓝总能第一个点单。 ### 输入格式 第一行给出三个正整数 $n,m,k,p,x$ 。 第二行输出 $n$ 个整数 $a_i$ 。 接下来 $m-1$ 行,每行输入两个整数 $u, v$ ,代表节点 $u$ 和 节点 $v$ 相连。 ### 输出格式 如果小蓝能抢到联动套餐就输出 YES ,否则输出 NO 。 ### 样例输入 ```txt 5 7 3 3 1 4 5 6 7 2 1 2 1 3 2 4 2 5 3 6 3 7 ``` ### 样例输出 ```txt YES ``` ### 评测数据规模 对于所有评测数据:$1 \le k < n,m \le 10^6$ , $1 \le p,x,a_i \le m$。
查看答案
赣ICP备20007335号-2