P0657

[Usaco2009 Nov]找工作

[Usaco2009 Nov]找工作

奶牛们手头拮据,正在四处寻找工作。农夫约翰希望它们前往不同的城市碰碰运气,但有一项限制:一头奶牛每次在一座城市中最多只能赚取 DD 美元,之后必须前往另一座城市工作。它可以在其他城市工作一段时间后返回原来的城市,并再次赚取最多 DD 美元,往返次数不受限制。

共有 CC 座城市,编号为 11 到 CC,城市之间有 PP 条单向道路。第 ii 条道路从城市 AiA_i 通往城市 BiB_i,通过道路不需要支付任何费用。贝希当前位于城市 SS。

此外,农夫约翰还向贝希提供私人飞机服务。共有 FF 条单向航线,第 ii 条航线从城市 JiJ_i 飞往城市 KiK_i,费用为 TiT_i 美元。即使贝希当前没有足够的现金,也可以先乘坐飞机,之后用工作所得支付费用。

贝希可以在任意时刻、任意城市退休。在工作时间不受限制的情况下,请计算贝希最多可以赚取多少钱。如果贝希可以赚取的钱没有上限,输出 −1-1。

输入格式

第一行包含 55 个以空格分隔的整数 D,P,C,F,SD,P,C,F,S。

接下来 PP 行,每行包含 22 个以空格分隔的整数 Ai,BiA_i,B_i,表示一条从城市 AiA_i 到城市 BiB_i 的单向道路。

接下来 FF 行,每行包含 33 个以空格分隔的整数 Ji,Ki,TiJ_i,K_i,T_i,表示一条从城市 JiJ_i 到城市 KiK_i、费用为 TiT_i 美元的单向航线。

输出格式

输出一个整数,表示贝希最多可以赚取的钱数。如果可以赚取的钱没有上限,输出 −1-1。

样例输入

100 3 5 2 1
1 5
2 3
1 4
5 2 150
2 5 120

样例输出

250

样例解释

贝希可以依次经过城市 11、55、22、33。它在这 44 座城市中共赚取 4×1004\times 100 美元,并支付从城市 55 飞往城市 22 的 150150 美元机票费用,因此最终赚取:

4×100−150=2504\times 100-150=250

美元。

数据范围

  • 1≤D≤1031\le D\le 10^3;
  • 1≤P≤1501\le P\le 150;
  • 2≤C≤2202\le C\le 220;
  • 1≤F≤3501\le F\le 350;
  • 1≤S≤C1\le S\le C;
  • 1≤Ai,Bi≤C1\le A_i,B_i\le C;
  • 1≤Ji,Ki≤C1\le J_i,K_i\le C;
  • 1≤Ti≤5×1041\le T_i\le 5\times 10^4。

来源与许可

本题为 USACO 2009 November 试题「Job Hunt」,题面与测试数据整理自 BZOJ 2019。

样例 1

输入

100 3 5 2 1
1 5
2 3
1 4
5 2 150
2 5 120

输出

250