谁是偷窃犯
测试数据来自 system/1961
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【题目描述】
警擦局长家里的保险柜被盗窃,警察们正试图从 \(K\) 名有前科的嫌疑人里找出那个罪犯,嫌疑人编号为 \(1..K\),幸运的是,路口的监控拍下被盗 \(T\) 秒前的路人的情况。这样警察就能通过嫌疑人的位置来判断谁有足够的时间来局长家。
这片社区有 \(N\) 个居民小区,标号 1 到 \(N\),有 \(M\) 条双向道路连接他们,通过这些道路需要的时间用一个整数表示,标号为 1 的小区是局长家。
给出嫌疑人所在的社区,请判断哪些有可能是偷窃犯。
【输入格式】
第一行输入四个整数:\(N,M,K,T\),它们的意义如题目描述。
接下来 \(M\) 行,每行三个整数描述一条路,起点、终点和通过时间。
再接下来 \(K(1≤K≤N)\) 行,第 \(i\) 个整数,表示编号为 \(i\) 的嫌疑人所在的社区标号。
【输出格式】
输出可能是偷窃犯的数目,接下来的每一行输出一个嫌犯的编号(按由小到大的顺序输出)。
【输入输出样例】
Input
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
Output
4
1
2
3
4
【数据限制】
对于 \(100\%\) 的数据,\(1≤N≤5000\),\(1≤M≤50000\),\(1≤T≤100000\)。
【来源】
Mr.he