#P3008. [USACO11JAN] Roads and Planes G

[USACO11JAN] Roads and Planes G

Description

Farmer John 正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到 TT 个城镇(1T25,0001 \le T \le 25,000),编号为 11TT。这些城镇之间通过 RR 条道路(1R50,0001 \le R \le 50,000,编号为 11RR)和 PP 条航线(1P50,0001 \le P \le 50,000,编号为 11PP)连接。每条道路 ii 或者航线 ii 连接城镇 AiA_i1AiT1 \le A_i \le T)到 BiB_i1BiT1 \le B_i \le T),花费为 CiC_i

对于道路 0Ci10,0000 \le C_i \le 10,000;然而航线的花费很神奇,花费 CiC_i 可能是负数(10,000Ci10,000-10,000 \le C_i \le 10,000)。道路是双向的,可以从 AiA_iBiB_i,也可以从 BiB_iAiA_i,花费都是 CiC_i。然而航线与之不同,只可以从 AiA_iBiB_i

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

Input Format

R+P+1R+P+1 行。

11 行:四个整数 T,R,PT,R,PSS,分别表示城镇的数量,道路的数量,航线的数量和中心城镇。

22R+1R+1 行:每行三个整数 Ai,BiA_i,B_iCiC_i,描述一条道路。

R+2R+2R+P+1R+P+1 行:每行三个整数 Ai,BiA_i,B_iCiC_i,描述一条航线。

Output Format

TT 行,第 ii 行输出城市 SS 到城市 ii 的最小花费。如果不能到达,输出 NO PATH

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

NO PATH 
NO PATH 
5 
0 
-95 
-100