atcoder#ABC191E. [ABC191E] Come Back Quickly

[ABC191E] Come Back Quickly

配点 : 500500

問題文

AtCoder 国には、町 11 から町 NN までの NN 個の町と、道路 11 から道路 MM までの MM 本の道路があります。 道路 ii は町 AiA_i から町 BiB_i への一方通行で、通るのに CiC_i 分かかります。Ai=BiA_i = B_i かもしれませんし、同じ町の組を結ぶ道路が複数あるかもしれません。 高橋君はこの国で散歩をしようと考えました。ある町から出発し、11 本以上の道路を通り、出発した町に帰ってくるような経路を正しい散歩経路と呼ぶことにします。 各町について、その町から出発する正しい散歩経路が存在するかを判定してください。また、存在するなら、そのような経路を通るのにかかる時間の最小値を求めてください。

制約

  • 1N20001 \le N \le 2000
  • 1M20001 \le M \le 2000
  • 1AiN1 \le A_i \le N
  • 1BiN1 \le B_i \le N
  • 1Ci1051 \le C_i \le 10^5
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM

A1A_1 B1B_1 C1C_1

A2A_2 B2B_2 C2C_2

A3A_3 B3B_3 C3C_3

\hspace{25pt} \vdots

AMA_M BMB_M CMC_M

出力

NN 行に渡って出力せよ。 i(1iN)i(1 \le i \le N) 行目には以下を出力せよ。

  • ii から出発する正しい散歩経路が存在するなら、そのような経路を通るのにかかる時間の最小値
  • 存在しないなら -1
4 4
1 2 5
2 3 10
3 1 15
4 3 20
30
30
30
-1

道路 1,2,31, 2, 3 によって、町 1,2,31, 2, 3 は一周に 3030 分かかる一つの輪のように繋がっています。 町 44 から町 1,2,31, 2, 3 に行くことはできますが、町 44 に帰ってくることはできません。

4 6
1 2 5
1 3 10
2 4 5
3 4 10
4 1 10
1 1 10
10
20
30
20

Ai=BiA_i = B_i であるような道路が存在するかもしれません。 この場合、町 11 からは、道路 66 だけを使って 1010 分で町 11 に帰ってくることができます。

4 7
1 2 10
2 3 30
1 4 15
3 4 25
3 4 20
4 3 20
4 3 30
-1
-1
40
40

同じ町の組を結ぶ道路が複数あるかもしれないことに注意してください。