Problem1749--道路和航线

1749: 道路和航线

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4  Solved: 3
[Submit] [Status] [Web Board] [Creator:]

Description

Farmer John 正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到  个城镇 ,编号为 1 到 T 。这些城镇之间通过 R 条道路(编号为 1 到 R)和 P 条航线(编号为 1 到 P)连接。每条道路 i 或者航线 i 连接城镇 Ai 到 Bi,花费为 Ci。

对于道路,0 ≤ Ci  10^4,然而航线的花费很神奇,花费 Ci 可能是负数。道路是双向的,可以从 Ai 到 Bi,也可以从 Bi 到 Ai,花费都是 Ci。然而航线与之不同,只可以从 Ai到 Bi。

事实上,由于最近恐怖主义太嚣张,为了社会和谐,出台了一些政策保证:如果有一条航线可以从 Ai 到 Bi,那么保证不可能通过一些道路和航线从 Bi 回到 Ai。由于 FJ 的奶牛世界公认十分给力,他需要运送奶牛到每一个城镇。他想找到从发送中心城镇 S 把奶牛送到每个城镇的最便宜的方案,或者知道这是不可能的。

Input

第一行为四个空格隔开的整数:T, R, P, S;

第二到第 R+1 行:三个空格隔开的整数(表示一条道路):Ai , Bi 和 Ci;

第 R+2 到 R+P+1 行:三个空格隔开的整数(表示一条航线):Ai , Bi 和 Ci

Output

输出 T 行,第 i 行表示到达城镇 i 的最小花费,如果不存在输出 NO PATH

Sample Input Copy

6 3 3 4 
1 2 5 
3 4 5 
5 6 10 
3 5 -100 
4 6 -100 
1 3 -10 

Sample Output Copy

NO PATH 
NO PATH 
5 
0 
-95 
-100 

HINT

样例说明

一共六个城镇。在 1 和 2,3 和 4,5 和 6 之间有道路,花费分别是 5, 5, 10。同时有三条航线:3-->5,4-->6 和 1-->3,花费分别是 -100, -100, -10。FJ 的中心城镇在城镇 4。FJ 的奶牛从 4 号城镇开始,可以通过道路到达 3 号城镇。然后他们会通过航线达到 5 和 6 号城镇。但是不可能到达 1 和 2 号城镇。





对于全部数据,1 ≤ T  2.5 ×10^4,1 ≤ R,P  5 ×10^4 ,1 ≤ Ai,Bi,S  T。保证对于所有道路,0 ≤ Ci  10^4,对于所有航线,-10^4 ≤ Ci  10^4

Source/Category