#ABC137E. 硬币游戏

硬币游戏

硬币游戏

题目描述

有一个由编号为 11NNNN 个顶点和 MM 条边组成的有向图。 第 ii 条边从顶点 AiA_i 指向顶点 BiB_i,这条边上放置了 CiC_i 枚硬币。 另外,在顶点 NN 上设置了一个按钮。

在图上进行如下游戏。 你从顶点 11 开始游戏,初始持有 00 枚硬币,沿着边走并拾取硬币,目标是顶点 NN。 通过 11 条边需要 11 分钟时间,每通过一条边都可以拾取该边上放置的所有硬币。 与游戏世界里常见的一样,即使通过某条边并拾取了其上的硬币,下次再通过这条边时,同样数量的硬币会再次出现,可以再次拾取。

到达顶点 NN 时,可以按下按钮结束游戏。(也可以不按按钮继续移动。) 但是,结束游戏时,需要按游戏开始后经过的时间 TT 分钟支付 T×PT \times P 枚硬币。如果持有的硬币数少于 T×PT \times P 枚,则改为支付持有的全部硬币。

此次支付后剩余的硬币数就是你的得分。 请判断能够获得的最高得分是否存在,如果存在则求出该最大值。

输入格式

输入按以下格式从标准输入给出:

NN MM PP
A1A_1 B1B_1 C1C_1
::
AMA_M BMB_M CMC_M

输出格式

如果能够获得的最高得分存在,则输出该最大值;如果不存在,则输出 -1

样例

3 3 10
1 2 20
2 3 30
1 3 45
35

从顶点 11 移动到顶点 33 的方法有以下 22 种:

  • 顶点 1231 \rightarrow 2 \rightarrow 3:途中拾取硬币 20+30=5020 + 30 = 50 枚。从游戏开始 22 分钟后到达顶点 33,按下按钮支付硬币 2×10=202 \times 10 = 20 枚,剩余 5020=3050 - 20 = 30 枚。
  • 顶点 131 \rightarrow 3:途中拾取硬币 4545 枚。从游戏开始 11 分钟后到达顶点 33,按下按钮支付硬币 1×10=101 \times 10 = 10 枚,剩余 4510=3545 - 10 = 35 枚。

因此,能够获得的最高得分是 3535

2 2 10
1 2 100
2 2 100
-1

从顶点 11 出发经过一条边到达顶点 22 后,在这里经过顶点 22 指向自身的边 tt 次再按下按钮,则得分为 90+90t90 + 90t。因此得分可以无限提高,能够获得的最高得分不存在。

4 5 10
1 2 1
1 4 1
3 4 1
2 2 100
3 3 100
0

除了直接经过从顶点 11 指向顶点 44 的边之外,没有其他从顶点 11 移动到顶点 44 的方法。在这条边上拾取 11 枚硬币,但游戏结束时被要求支付 1010 枚硬币,得分为 00

另外,虽然经过从顶点 11 指向顶点 22 的边后可以无限拾取硬币,但无法到达顶点 44 结束游戏,因此没有意义。

数据范围

  • 2N25002 \leq N \leq 2500
  • 1M50001 \leq M \leq 5000
  • 1Ai,BiN1 \leq A_i, B_i \leq N
  • 1Ci1051 \leq C_i \leq 10^5
  • 0P1050 \leq P \leq 10^5
  • 输入中的所有值均为整数
  • 可以到达顶点 NN
难度 提高
通过率
尝试 0
已通过 0
ID
1768
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签