atcoder#ABC257F. [ABC257F] Teleporter Setting

[ABC257F] Teleporter Setting

配点 : 500500

問題文

NN 個の町と MM 個のテレポーターがあり、 町は町 11, 町 22, \ldots, 町NN と番号づけられています。 それぞれのテレポーターは 22 つの町を双方向に結んでおり、テレポーターを使用する事によってその 22 つの町の間を 11 分で移動することができます。

ii 番目のテレポーターは町 UiU_i と町 ViV_i を双方向に結んでいますが、 いくつかのテレポーターについては結ぶ町の片方が決まっておらず、 Ui=0U_i=0 のときそのテレポーターが結ぶ町の片方は町 ViV_i であるが、 もう片方が未定であることを意味します。

i=1,2,,Ni=1,2,\ldots,N それぞれについて、次の問題を解いてください。

結ぶ町の片方が未定となっているテレポーターの結ぶ先をすべて町 ii とする。 この時に町 11 から町 NN まで移動するのに最小で何分かかるか求めよ。 町 11 から町 NN までテレポーターのみを使って移動するのが不可能な場合は 1-1 を出力せよ。

制約

  • 2N3×1052 \leq N \leq 3\times 10^5
  • 1M3×1051\leq M\leq 3\times 10^5
  • $0\leq U_i
  • iji \neq j ならば (Ui,Vi)(Uj,Vj)(U_i,V_i)\neq (U_j,V_j)
  • 入力は全て整数

入力

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

NN MM

U1U_1 V1V_1

U2U_2 V2V_2

\vdots

UMU_M VMV_M

出力

NN 個の整数を空白区切りで出力せよ。 ここで、kk 番目の整数は i=ki=k とした時の問題に対する答えである.

3 2
0 2
1 2
-1 -1 2

結ぶ先が未定となっているテレポーターの結び先を町 11 としたとき、 11 番目と 22 番目のテレポーターはともに町 11 と町 22 を結びます。 このとき、町 11 から町 33 への移動はできません。

結ぶ先が未定となっているテレポーターの結び先を町 22 としたとき、 11 番目のテレポーターは町 22 同士を、 22 番目のテレポーターは町 11 と町 22 を結びます。 このときもやはり、町 11 から町 33 への移動はできません。

結ぶ先が未定となっているテレポーターの結び先を町 33 としたとき、 11 番目のテレポーターは町 33 と町 22 を、 22 番目のテレポーターは町 11 と町 22 を結びます。 この時、次のようにして町 11 から町 3322 分で移動できます。

  • 22 番目のテレポーターを使用し、町 11 から町 22 まで移動する。
  • 11 番目のテレポーターを使用し、町 22 から町 33 まで移動する。

よって、1,1,2-1,-1,2 をこの順に出力します。

結ぶ先が未定となっているテレポーターの結び先によっては、 同じ町同士を結ぶテレポーターが存在する可能性や、 ある 22 つの町を結ぶテレポーターが複数存在する可能性がある事に注意してください。

5 5
1 2
1 3
3 4
4 5
0 2
3 3 3 3 2