单点时限: 1.0 sec
内存限制: 512 MB
众所周知,在苹果发布会前,所有即将被公布的新产品都是绝密。
我们可以认为苹果的所有员工之间的关系构成一张关系图,两个员工的关系密切,则两个员工之间会有一条边相连(给我们认为关系是双向的),员工的索引是从 $1$ 到 $n$ 递增的整数,假设每条边的长度都是 $1$ 。
现在,苹果即将召开新的一次发布会了,在发布会前,高层将会有一次秘密会议,讨论决定发布会的具体内容,显然,秘密会议的内容是绝对的商业机密。
可惜的是,参与会议的人都是些藏不住秘密的人。从会议结束后的第一天开始,所有知道秘密的人都会和距离(在上述关系图中的距离)自己不超过 $k$ 的所有人共享这个秘密,而第二天,所有知道秘密的人都会和距离自己不超过 $2k$ 的所有人共享这个秘密。也就是说,在会议结束后的第 $x$ 天,所有知道秘密的人都开始与距自己最多 $x\times k$ 的所有人共享该秘密。
现在 Cuber QQ 被委托计算每个人都会在什么时候知道这个秘密。
第一行包含四个整数 $n$, $m$, $q$ 和 $k$ ($1\le n,q,k\le 10^5,q\le n,1\le m\le 2\cdot 10^5$) ,分别表示员工数量,关系数量,参加秘密会议的人数,以及任务描述中的 $k$。
接下来的一行包含 $q$ 个整数,其中第 $i$ 个整数表示秘密会议中第 $i$ 个员工的索引。
接下来的 $m$ 行,每行包含两个整数 $a_i$ 和 $b_i$ ($1\le a_i,b_i\le n,a_i\neq b_i$),表示第 $i$ 个关系为索引为 $a_i$ 和 $b_i$ 的员工。
题目保证给定的图是一张联通图,即任意两个员工之间,一定存在间接的关系相连。
输出 $n$ 个数字,第 $i$ 个数字代表会议后的哪一天索引为 $i$ 的员工将知道秘密。如果该员工参加了会议,则输出 $0$ 。
6 8 1 1 6 1 3 1 5 1 6 2 5 2 6 3 4 3 5 5 6
1 1 2 2 1 0