A85047.「一本通 3.2 练习 7」道路和航线
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
原题来自:USACO 2011 Jan. Gold
Farmer John 正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到 T 个城镇 ,编号为 1 到 T。这些城镇之间通过 R 条道路(编号为 1 到 R)和 P 条航线(编号为 1 到 P)连接。每条道路 i 或者航线 i 连接城镇 Ai 到 Bi,花费为 Ci。
对于道路,0≤Ci≤104,然而航线的花费很神奇,花费 Ci 可能是负数。道路是双向的,可以从 Ai 到 Bi,也可以从 Bi 到 Ai,花费都是 Ci。然而航线与之不同,只可以从 Ai 到 Bi。
事实上,由于最近恐怖主义太嚣张,为了社会和谐,出台了一些政策保证:如果有一条航线可以从 Ai 到 Bi,那么保证不可能通过一些道路和航线从 Bi 回到 Ai。由于 FJ 的奶牛世界公认十分给力,他需要运送奶牛到每一个城镇。他想找到从发送中心城镇 S 把奶牛送到每个城镇的最便宜的方案,或者知道这是不可能的。
输入格式
第一行为四个空格隔开的整数:T,R,P,S;
第二到第 R+1 行:三个空格隔开的整数(表示一条道路):Ai,Bi 和 Ci;
第 R+2 到 R+P+1 行:三个空格隔开的整数(表示一条航线):Ai,Bi 和 Ci。
输出格式
输出 T 行,第 i 行表示到达城镇 i 的最小花费,如果不存在输出 NO PATH。
输入输出样例
输入#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
说明/提示
对于全部数据,1≤T≤2.5×104,1≤R,P≤5×104,1≤Ai,Bi,S≤T。保证对于所有道路,0≤Ci≤104,对于所有航线,−104≤Ci≤104。