atcoder#ABC252E. [ABC252E] Road Reduction

[ABC252E] Road Reduction

配点 : 500500

問題文

AtCoder 王国には都市 1,2,,N1,2,\ldots,NNN 個の都市と、道路 1,2,,M1,2,\ldots,MMM 本の道路があります。 道路 ii は都市 AiA_iBiB_i を双方向に結び、距離は CiC_i です。 どの都市間もいくつかの道路を通って行き来することができます。

財政難である王国は、どの都市間もいくつかの道路を通って行き来できるという条件を満たすように N1N-1 本の道路を保守し、それ以外の道路を廃道にすることにしました。

保守する道路のみを通って都市 11 から都市 ii へ移動するときの距離を did_i とするとき、保守する道路の選び方であって、d2+d3++dNd_2+d_3+\ldots+d_N を最小化するようなものを 11 つ出力してください。

制約

  • 2N2×1052 \leq N \leq 2\times 10^5
  • N1M2×105N-1 \leq M \leq 2\times 10^5
  • 1Ai<BiN1 \leq A_i < B_i \leq N
  • iji\neq j のとき、(Ai,Bi)(Aj,Bj)(A_i,B_i)\neq(A_j,B_j)
  • 1Ci1091\leq C_i \leq 10^9
  • どの都市間もいくつかの道路を通って行き来することができる
  • 入力に含まれる値は全て整数である

入力

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

NN MM

A1A_1 B1B_1 C1C_1

A2A_2 B2B_2 C2C_2

\vdots

AMA_M BMB_M CMC_M

出力

保守するような道路の番号を空白区切りで出力せよ。出力の順序は問わない。 答えが複数存在する場合、どれを出力しても正解とみなされる。

3 3
1 2 1
2 3 2
1 3 10
1 2

保守する道路の選び方と did_i の値は次のようになります。

  • 道路 1,21,2 を保守するとき、d2=1d_2=1, d3=3d_3=3
  • 道路 1,31,3 を保守するとき、d2=1d_2=1, d3=10d_3=10
  • 道路 2,32,3 を保守するとき、d2=12d_2=12, d3=10d_3=10

よって、道路 1,21,2 を保守するときに d2+d3d_2+d_3 が最小になります。

4 6
1 2 1
1 3 1
1 4 1
2 3 1
2 4 1
3 4 1
3 1 2