编程题
### 问题描述
最近,小蓝经常玩的游戏和某个品牌的奶茶店明天早上就要开始联动了,这个品牌的奶茶店会推出一款赠送周边的联动套餐。由于这个品牌奶茶店是全国连锁,所以每家店的联动套餐很少,只有 $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$。