#P3008. [USACO11JAN] Roads and Planes G

    ID: 5078 传统题 3000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>图论最短路拓扑排序Dijkstra负权边USACO 2011洛谷难度:提高+/省选−

[USACO11JAN] Roads and Planes G

P3008 [USACO11JAN] Roads and Planes G

题目描述

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)把奶牛送到每个城镇的最便宜的方案,或者知道这是不可能的。

输入格式

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,描述一条航线。

输出格式

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

输入输出样例 #1

输入 #1

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

输出 #1

NO PATH 
NO PATH 
5 
0 
-95 
-100 

说明/提示

共有 66 个城镇。城镇 112233445566 之间分别有道路相连,花费分别为 55551010;有航线从城镇 33 飞往城镇 55、从城镇 44 飞往城镇 66、从城镇 11 飞往城镇 33,花费分别为 100-100100-10010-10。发送中心城镇为 44 号城镇。

FJ 的奶牛从 44 号城镇出发,可以通过道路到达 33 号城镇。她们可以乘坐从 33 号和 44 号城镇出发的航线到达 55 号和 66 号城镇。然而,没有办法到达 11 号和 22 号城镇,因为她们无法乘坐从 11 号到 33 号的航班反向飞行(即无法从 33 号飞回 11 号)。