#abc061d. [abc061_d]Score Attack
[abc061_d]Score Attack
問題文
頂点 辺の重み付き有向グラフがあります。
番目の辺は 頂点 から 頂点 を重み で結びます。
このグラフと駒を利用して、次の1人ゲームを行います。
最初、駒を頂点 に置いて、プレイヤーのスコアを とします。
プレイヤーは、次の条件で駒を繰り返し移動させることができます。
- 頂点 に駒があるとき、 番目の辺を利用して頂点 に移動する。移動後にプレイヤーのスコアが 加算される。
頂点 に駒があるときのみ、ゲームを終了できます。
なお、与えられる有向グラフの上で頂点 から頂点 に移動できることは保障されています。
プレイヤーがゲーム終了時のスコアを出来るだけ大きくするような行動を取ったとき、ゲーム終了時のスコアはいくつになるでしょうか?
ゲーム終了時のスコアをいくらでも大きくできる場合は inf
と出力してください。
制約
- または
- は整数である。
- 与えられるグラフには、頂点 から頂点 への経路が存在する。
入力
入力は以下の形式で標準入力から与えられる。
出力
もし、ゲーム終了時のスコアをいくらでも大きくできる場合は inf
、そうでない場合はゲーム終了時のスコアの最大値を出力せよ。
入力例 1
3 3
1 2 4
2 3 3
1 3 5
出力例 1
7
駒を頂点 に移動できる経路は以下の 通りです。
- 頂点 → 頂点 → 頂点 : スコア
- 頂点 → 頂点 : スコア
したがって、ゲーム終了時のスコアの最大値は となります。
入力例 2
2 2
1 2 1
2 1 1
出力例 2
inf
頂点 → 頂点 → 頂点 → 頂点 … と移動することで、ゲーム終了時のスコアをいくらでも増やせます。
入力例 3
6 5
1 2 -1000000000
2 3 -1000000000
3 4 -1000000000
4 5 -1000000000
5 6 -1000000000
出力例 3
-5000000000