#C1621. J13 实践-4 大富翁游戏

J13 实践-4 大富翁游戏

J13 实践-4 大富翁游戏

题目描述

玩家小喵发明了一款新 · 大富翁游戏,邀请了他的朋友们一起来玩。 新 · 大富翁的地图有 NN 个据点 MM 条道路,其中第 ii 条道路能从据点 AiA_i 走到据点 BiB_i ,且这条路上有 CiC_i 枚金币。 玩家从据点 11 出发,出发时没有金币。每次花费 11 分钟来走一条道路,并收集这条路上的金币。在这条路被走过后,金币将会被重置,再次通过这条路能再次收集到这些金币。 如果玩家想结束游戏,他需要走到终点——据点 NN ,并摁下位于据点 NN 的结束按钮(也可以不摁结束按钮继续玩)。结束后玩家还要再支付 T×PT\times P 枚金币的路费(TT 为玩游戏的分钟数),若手中的金币数不足 T×PT\times P ,就要付完所有的金币。当付完后,剩下的金币就是玩家的收获。 小喵想知道,他发明的这款新 · 大富翁游戏,玩家最多能得到多少枚金币。

输入格式

M+1M+1 行: 第一行三个整数 N,M,PN,M,P ,表示据点数量,道路数量和路费参数 22 ; 接下来的 MM 行每行三个整数 Ai,Bi,CiA_i,B_i,C_i ,依次表示第 ii 条道路的起点,终点和金币数量。

输出格式

一行一个整数,输出玩家最多能获得的金币数;若没有最大值,输出 -1

输入样例

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

输出样例

35

样例分析

新 · 大富翁游戏的地图如上图所示,有 22 种方法从据点 11 走到据点 33

  • 1231 \rightarrow 2 \rightarrow 3 :收集 20+30=5020+30=50 枚金币,花费 22 分钟,需要支付 2×10=202\times 10=20 枚金币作为路费,最终获得 3030 枚金币;
  • 131 \rightarrow 3 :收集 4545 枚金币,花费 11 分钟,需要支付 1×10=101\times 10=10 枚金币作为路费,最终获得 3535 枚金币;

所以能获得最多的金币数为 3535

数据范围

对于 100%100\% 的数据:$2≤N≤2500,1M50001 \leq M \leq 5000,1Ai,BiN1 \leq A_i,B_i \leq N1Ci105,0P1051 \leq C_i \leq 10^5,0 \leq P \leq 10^5 ; 保证从据点 11 能到达据点 NN ,保证所有输入都是整数。