AT_abc137_e.[ABC137E] Coins Respawn

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

你将在这张图上进行游戏。你从顶点 11 出发,初始时持有 00 枚硬币,沿着边移动并拾取硬币,目标是到达顶点 NN。每经过一条边需要 11 分钟,并且每次经过一条边时都可以拾取该边上所有的硬币。和游戏世界常见设定一样,即使你已经经过某条边并拾取了硬币,下次再经过时该边上的硬币会再次出现,你仍然可以再次拾取。

到达顶点 NN 时,你可以按下按钮结束游戏(也可以选择不按按钮继续移动)。不过,结束游戏时,假设从游戏开始已经过去了 TT 分钟,你需要支付 T×PT \times P 枚硬币。如果你持有的硬币不足 T×PT \times P,则需要支付你持有的全部硬币。

支付后剩下的硬币数就是你的得分。请判断是否存在可以获得的最大得分,如果存在则输出最大得分,否则输出 1-1

输入格式

输入以如下格式从标准输入读入。

NN MM PP
A1A_1 B1B_1 C1C_1
\vdots
AMA_M BMB_M CMC_M

输出格式

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

输入输出样例

  • 输入#1

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

    输出#1

    35
  • 输入#2

    2 2 10
    1 2 100
    2 2 100

    输出#2

    -1
  • 输入#3

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

    输出#3

    0

说明/提示

限制条件

  • 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
  • 输入中的所有值均为整数。
  • 一定可以从顶点 11 到达顶点 NN

样例解释 1

输入例 1 所给图的示意图

从顶点 11 到顶点 33 有以下两种方式:

  • 1231 \rightarrow 2 \rightarrow 3:途中共拾取 20+30=5020 + 30 = 50 枚硬币。到达顶点 33 时已过去 22 分钟,支付 2×10=202 \times 10 = 20 枚硬币,剩下 5020=3050 - 20 = 30 枚。
  • 131 \rightarrow 3:途中拾取 4545 枚硬币。到达顶点 33 时已过去 11 分钟,支付 1×10=101 \times 10 = 10 枚硬币,剩下 4510=3545 - 10 = 35 枚。

因此,最大得分为 3535

样例解释 2

输入例 2 所给图的示意图

从顶点 11 出发经过一条边到达顶点 22,然后可以在顶点 22 上自环多次,每次都能拾取 9090 枚硬币。这样,最终得分为 90+90t90 + 90t,可以无限增加。因此不存在最大得分。

样例解释 3

输入例 3 所给图的示意图

从顶点 11 到顶点 44 只有一条直接的边。经过这条边可以拾取 11 枚硬币,但结束时需要支付 1010 枚硬币,因此得分为 00

注意,虽然可以从顶点 11 到顶点 22 并在 22 上无限拾取硬币,但无法到达顶点 44 并结束游戏,因此没有意义。

首页