#635. 阳光补给

阳光补给

题目背景

题目描述

为了抵御僵尸的进攻,疯狂戴夫在地图上布置了一套 阳光补给网络。地图上共有(N)(2N5104) (N)((2\le N\le 5\cdot 10^4))个编号为 (1N)(1\ldots N) 的地点,其中前(C)(1C<N) (C)((1\le C<N))个是 阳光补给站,其余为需要防守的 植物阵地

这些地点之间由 (M)(1M105)(M)((1 \le M \le 10^5))条双向道路连接,第 (i)(i) 条道路连接不同的地点(ui) (u_i)(vi)(1ui,viN)(v_i)((1\le u_i,v_i\le N)),道路长度为 (li)(1li109)(l_i)((1\le l_i\le 10^9))

一辆运输车在一次补给后最多可行驶 (2R)(2R) 英里(1R109)((1\le R\le 10^9)),这意味着它可以从某个补给站到达 距离该补给站不超过(R) (R) 的任意植物阵地。

如果一个植物阵地 可以从至少 (K)(1K10)(K)((1\le K\le 10))个不同的阳光补给站到达,那么该阵地被认为是 防守稳固的

你的任务是帮助戴夫找出所有防守稳固的植物阵地。

输入格式

输入的第一行包含五个空格分隔的整数 (N),(M),(C),(R) 和 (K)。 接下来 (M) 行,每行包含三个空格分隔的整数(ui)(vi) (u_i),(v_i)(li)(l_i),其中(uivi) (u_i\neq v_i)

补给站的编号为(1,2,,C) (1,2,\ldots,C)。其余地点均为植物阵地。

输出格式

首先输出一行,包含防守稳固的植物阵地的数量。 然后按升序输出所有防守稳固的植物阵地编号,每个一行。


输入输出样例 #1

输入 #1

3 3 1 4 1
1 2 3
1 3 5
2 3 2

输出 #1

1
2

输入输出样例 #2

输入 #2

4 3 2 101 2
1 2 1
2 3 100
1 4 10

输出 #2

2
3
4

输入输出样例 #3

输入 #3

4 3 2 100 2
1 2 1
2 3 100
1 4 10

输出 #3

1
4

说明 / 提示

样例解释 1

地图上只有 1 号地点是阳光补给站。 从该补给站出发,可以到达植物阵地 2(距离为 3),但无法到达植物阵地 3(距离为 5,大于 (R=4))。 因此,只有植物阵地 2 是防守稳固的。

样例解释 2

地图上 1 号和 2 号地点都是阳光补给站。 植物阵地 34 都在这两个补给站的 (R=101) 范围内,因此它们都能被至少两个补给站覆盖,属于防守稳固的阵地。

测试点性质

  • 20%的数据:(K=2)(N500)(K=2),(N\le 500),且 (M1000)(M\le 1000)
  • 另有20%的数据:(K=2)
  • 其余60%的数据:无额外限制