2728 - 勤劳的蜜蜂

题目描述

一只小蜜蜂在一片花园里采蜜。花园里一共有 N 朵花(编号为 1 \sim N),为了保护花朵,蜜蜂王国规定,每次在同一朵花上,最多只能采 L 个单位的蜂蜜,采摘完毕后必须离开当前花朵飞到其他花朵上。当然,它也可以在其他花朵采蜜之后飞回来,再次采摘 L 个单位的蜂蜜,往返次数没有任何限制。

为了小蜜蜂的飞行安全,花园里的空中飞行有着严格的交通管制,花园里一共有 M_1单向的飞行路线,第 i 条飞行路线可以让小蜜蜂从编号为 X_i 的花朵飞行到编号为 Y_i 的花朵,从该路线飞行,小蜜蜂不需要支付任何费用。

为了增加采摘的乐趣,蜜蜂王国的科学家增加了 M_2单向的传送虫洞,第 j 条虫洞可以将小蜜蜂从编号为 X_j 的花朵传送到编号为 Y_j 的花朵,传送虫洞可以让小蜜蜂更加轻松的在花朵之间来回采蜜,只是经过第 j 条虫洞,需要支付 T_j 个单位的蜂蜜,作为虫洞使用的费用。

小蜜蜂一开始在编号为 S 的花朵上,它会先采摘掉该花朵的 L 个单位的蜂蜜,再选择飞行路线或者虫洞去往其他花朵,它也可以选择在任意一个花朵停止采摘。

请问小蜜蜂在花园里最多能得到多少个单位的蜂蜜?如果小蜜蜂理论上有可能采摘到无数个单位的蜂蜜,请输出 -1

输入

1 行读入 L,M_1,N,M_2,S,数字之间用空格隔开。

接下来 M_1 行,读入 M_1 条单向的飞行路线,每行两个整数 X_i,Y_i

接下来 M_2 行,读入 M_2 条单向的虫洞,每行三个整数 X_j,Y_j,T_j

输出

输出一个整数,代表小蜜蜂最多能得到多少个单位的蜂蜜。

样例

输入

100 3 5 2 1
1 5
2 3
1 4
5 2 120
2 5 110

输出

280

输入

100 7 10 9 1
1 2
4 5
5 6
5 8
6 8
7 9
8 9
1 3 2
2 3 2
3 4 5
3 5 95
3 6 13
5 7 95
6 7 11
7 8 69
7 10 66

输出

813

输入

200 2 3 1 1
1 2
2 3
3 1 210

输出

-1
说明

样例 1 解释

小蜜蜂沿着如下编号的花朵飞行 1 -> 5 -> 2 -> 3,共采摘到 400 个单位的蜂蜜,但从 5 -> 2 必须使用虫洞,因此需要支付 120 个单位的蜂蜜,最终小蜜蜂选择在 3 号花朵休息,得到了 280 个单位的蜂蜜。

数据范围

对于 100\% 的数据满足:1 \le L \le 10001 \le M_1 \le 5002 \le N \le 10001 \le M_2 \le 5001 \le T_j \le 500001 \le X_i \neq Y_i \le N1 \le X_j \neq Y_j \le N

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 基础


上一题 下一题