#abc061d. [abc061_d]Score Attack

[abc061_d]Score Attack

题目描述

有一个有 NN 个顶点和 MM 条边的有向图。第 ii 条边 (1iM)(1≤i≤M) 从顶点 aia_i 指向顶点 bib_i,并且具有权重 cic_i。我们将使用该图和一个棋子进行以下单人游戏。

初始时,棋子放置在顶点 11 上,玩家的得分设置为 00。玩家可以根据以下规则移动棋子:

  • 当棋子放置在顶点 aia_i 上时,将棋子沿第 ii 条边移动到顶点 bib_i。完成此次移动后,玩家的得分增加 cic_i

玩家只能在棋子放置在顶点 NN 上时结束游戏。给定的图保证可以从顶点 11 到达顶点 NN

当玩家通过最佳策略在游戏结束时使得得分最大化时,最终得分是多少?如果可以无限增加得分,请输出 inf

约束条件

  • 2N10002≤N≤1000
  • 1Mmin(N(N1),2000)1≤M≤\min(N(N-1),2000)
  • 1ai,biN(1iM)1≤a_i,b_i≤N (1≤i≤M)
  • aibi(1iM)a_i≠b_i (1≤i≤M)
  • aiaja_i≠a_jbibj(1i<jM)b_i≠b_j (1≤i<j≤M)
  • 109ci109(1iM)-10^9≤c_i≤10^9 (1≤i≤M)
  • cic_i 是一个整数。
  • 在给定的图中,从顶点 11 到顶点 NN 存在一条路径。

输入

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

NN MM
a1a_1 b1b_1 c1c_1
a2a_2 b2b_2 c2c_2 ::
aMa_M bMb_M cMc_M

输出

如果可以有限地增加得分,请输出游戏结束时可能的最大得分。如果可以无限增加得分,请输出 inf


示例输入 1

3 3
1 2 4
2 3 3
1 3 5

示例输出 1

7

有两种方式将棋子移动到顶点 N=3N=3

  • 顶点 11 → 顶点 22 → 顶点 33:得分 4+3=74+3=7
  • 顶点 11 → 顶点 33:得分 55

因此,在游戏结束时可能的最大得分是 77


示例输入 2

2 2
1 2 1
2 1 1

示例输出 2

inf

通过在顶点 1122 之间交替移动,可以无限增加得分。


示例输入 3

6 5
1 2 -1000000000
2 3 -1000000000
3 4 -1000000000
4 5 -1000000000
5 6 -1000000000

示例输出 3

-5000000000