loj#P3471. 「JOI 2021 Final」机器人

「JOI 2021 Final」机器人

問題文

IOI 町には NN 個の交差点があり,11 から NN までの番号が付いている.また,MM 本の道があり,11 から MM までの番号が付いている.それぞれの道は 22 個の異なる交差点を双方向に結んでいる.道 ii (1iM)は交差点1 \leq i \leq M) は交差点 A_iと交差点 と交差点 B_i$ を結んでいる.22 本の異なる道が同じ交差点の組を結ぶことはない.これらの道には 11 以上 MM 以下の整数で表される色が塗られており,道 ii の現在の色は CiC_i である.複数の道が同じ色で塗られているかもしれない.

JOI 社は IOI 町の交差点を移動するロボットを開発した.あなたがこのロボットに道の色を指示すると, ロボットは指示された色の道を通り隣接した交差点に移動する.ただし,ロボットが現在いる交差点につな がれた道のうちに,指示された色の道が 22 本以上存在すると,次に進むべき道を判別できずに停止してし まう.

あなたの目的は,現在交差点 11 にいるロボットに何回かの指示を出して,交差点 NN に移動させることで ある.ただし,現在の道の色ではそれができるとは限らないため,何本かの道の色を事前に塗り替えること で,ロボットを交差点 NN に移動させることができるようにしたい.道 ii (1iM1 \leq i \leq M) は PiP_i 円をかけて,11 以上 MM 以下の好きな整数の色に塗り替えることが出来る.

交差点と道の情報が与えられたとき,必要な金額の最小値を求めるプログラムを作成せよ.ただし,どのように道の色を塗り替えてもロボットを交差点 N に移動させることができない場合は,代わりに -1 を出力せよ.

入力

入力は以下の形式で標準入力から与えられる.入力される値はすべて整数である.

N MN\ M
A1 B1 C1 P1A_1\ B_1\ C_1\ P_1
\vdots
AM BM CM PMA_M\ B_M\ C_M\ P_M

出力

標準出力に必要な金額の最小値を 11 行で出力せよ.ただし,どのように道の色を塗り替えてもロボットを 交差点 NN に移動させることができない場合は,代わりに -1 を出力せよ.

4 6
1 4 4 4
3 4 1 3
1 3 4 4
2 4 3 1
2 3 3 2
1 2 4 2
3
5 2
1 4 1 2
3 5 1 4
-1
5 7
2 3 7 1
1 4 5 1
4 5 3 1
3 4 7 1
2 4 3 1
3 5 6 1
1 2 5 1

1

制約

  • 2N1052 \leq N \leq 10^5
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1Ai<BiN1 \leq A_i < B_i \leq N (1iM1 \leq i \leq M).
  • (Ai,Bi)(Aj,bj)(A_i, B_i) \neq (A_j, b_j) (1i<jM1 \leq i < j \leq M).
  • 1CiM1 \leq C_i \leq M (1iM1 \leq i \leq M).
  • 1Pi1091 \leq P_i \leq 10^9 (1iM1 \leq i \leq M).

小課題

  1. (3434 点) N1000N \leq 1000, M2000M \leq 2000
  2. (2424 点) Pi=1P_i = 1 (1iM1 \leq i \leq M).
  3. (4242 点) 追加の制約はない.