农场有 F 个点,已知 P 条边以及每条边的起点终点和通过时间,给出 C 个有牛的点,求在规定时间 M 内能从起点到达牛当前位置的牛的数量,并按升序输出牛的编号。
谷仓里发现谷物被盗!FJ 正试图从 C 只奶牛里找出那个偷谷物的罪犯。幸运的是,一个恰好路过的卫星拍下谷物被盗前 M 秒的农场的图片。这样约翰就能通过牛们的位置来判断谁有足够的时间来盗窃谷物。
约翰农场有 F 草地,标号 1 到 F,还有 P 条双向路连接着它们。通过这些路需要的时间在 1 到 70000 秒的范围内。田地 1 上建有那个被盗的谷仓。给出农场地图,以及卫星照片里每只牛所在的位置,请判断哪些牛有可能犯罪。
请注意:数据里可能存在重边(起点和终点相同的边)。
第 1 行:四个以空格分隔的整数:F,P,C 和 M。
第 2 行至 P+1 行:三个空间分隔的整数,描述一个路径。连接 F1 和 F2 的路径需要 T 秒。
第 P+2 行至 P+C+1 行:每行一个整数,是一头牛的位置。
第 1 行输出嫌疑犯的数目,接下来每一行输出一只嫌疑犯的编号。
7 6 5 8 1 4 2 1 2 1 2 3 6 3 5 5 5 4 6 1 7 9 1 4 5 3 7
4 1 2 3 4
对于 100\% 的数据:1 \le M \le 70000,1 \le C \le 100,1 \le P \le 1000,1 \le F \le 500。