atcoder#ABC164E. [ABC164E] Two Currencies

[ABC164E] Two Currencies

配点 : 500500

問題文

11 から NN までの番号がつけられた NN 個の都市があります。 これらの都市は MM 本の鉄道路線によって結ばれています。

あなたは現在、金貨を 1010010^{100} 枚、銀貨を SS 枚持った状態で都市 11 にいます。

ii 番目の鉄道路線は、都市 UiU_i と都市 ViV_i を双方向に結んでおり、片道の運賃は 銀貨 AiA_i 枚、移動にかかる時間は BiB_i 分です。 運賃を金貨で払うことはできません。

各都市には両替所があり、都市 ii の両替所では金貨 11 枚を銀貨 CiC_i 枚と交換することができます。 交換には、金貨 11 枚あたり DiD_i 分かかります。 各交換所では、金貨を何枚でも交換することができます。

t=2,...,Nt=2,...,N について、都市 11 から都市 tt への移動にかかる最小の時間を求めてください。電車を待つのにかかる時間は無視して構いません。

制約

  • 2N502 \leq N \leq 50
  • N1M100N-1 \leq M \leq 100
  • 0S1090 \leq S \leq 10^9
  • 1Ai501 \leq A_i \leq 50
  • 1Bi,Ci,Di1091 \leq B_i,C_i,D_i \leq 10^9
  • 1Ui<ViN1 \leq U_i < V_i \leq N
  • (Ui,Vi)=(Uj,Vj)(U_i,V_i)=(U_j,V_j) なる i,j(ij)i,j(i \neq j) は存在しない
  • 都市 11 から都市 t=2,...,Nt=2,...,N にいくつかの鉄道路線を使って移動することができる。
  • 入力はすべて整数である。

入力

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

NN MM SS

U1U_1 V1V_1 A1A_1 B1B_1

::

UMU_M VMV_M AMA_M BMB_M

C1C_1 D1D_1

::

CNC_N DND_N

出力

t=2,...,Nt=2,...,Nについて、都市 11 から都市 tt への移動にかかる最小の時間を順番に一行ずつ出力せよ。

3 2 1
1 2 1 2
1 3 2 4
1 11
1 2
2 5
2
14

この入力中の鉄道網は以下のようなものです。

ここで、図中の都市のラベルは

  • 一段目に都市の番号 ii
  • 二段目に Ci/DiC_i / D_i

の形式に従っています。同様に、鉄道路線のラベルは

  • 一段目に鉄道路線の番号 ii
  • 二段目に Ai/BiA_i / B_i

の形式に従っています。

図

以下のように行動することで、 都市 11 から都市 2222 分で移動できます。

  • 11 番目の鉄道路線を使って、都市 11 から都市 22 へ移動する。(所要時間: 22 分)

以下のように行動することで、 都市 11 から都市 331414 分で移動できます。

  • 11 番目の鉄道路線を使って、都市 11 から都市 22 へ移動する。(所要時間: 22 分)
  • 都市 22 の両替所で、金貨 33 枚を銀貨 33 枚と交換する。(所要時間: 66 分)
  • 11 番目の鉄道路線を使って、都市 22 から都市 11 へ移動する。(所要時間: 22 分)
  • 22 番目の鉄道路線を使って、都市 11 から都市 33 へ移動する。(所要時間: 44 分)
4 4 1
1 2 1 5
1 3 4 4
2 4 2 2
3 4 1 1
3 1
3 1
5 2
6 4
5
5
7

この入力中の鉄道網は以下のようなものです。

図

以下のように行動することで、 都市 11 から都市 4477 分で移動できます。

  • 都市 11 の両替所で、金貨 22 枚を銀貨 66 枚と交換する。(所要時間: 22 分)
  • 22 番目の鉄道路線を使って、都市 11 から都市 33 へ移動する。(所要時間: 44 分)
  • 44 番目の鉄道路線を使って、都市 33 から都市 44 へ移動する。(所要時間: 11 分)
6 5 1
1 2 1 1
1 3 2 1
2 4 5 1
3 5 11 1
1 6 50 1
1 10000
1 3000
1 700
1 100
1 1
100 1
1
9003
14606
16510
16576

この入力中の鉄道網は以下のようなものです。

図

以下のように行動することで、 都市 11 から都市 661657616576 分で移動できます。

  • 11 番目の鉄道路線を使って、都市 11 から都市 22 へ移動する。(所要時間: 11 分)
  • 都市 22 の両替所で、金貨 33 枚を銀貨 33 枚と交換する。(所要時間: 90009000 分)
  • 11 番目の鉄道路線を使って、都市 22 から都市 11 へ移動する。(所要時間: 11 分)
  • 22 番目の鉄道路線を使って、都市 11 から都市 33 へ移動する。(所要時間: 11 分)
  • 都市 33 の両替所で、金貨 88 枚を銀貨 88 枚と交換する。(所要時間: 56005600 分)
  • 22 番目の鉄道路線を使って、都市 33 から都市 11 へ移動する。(所要時間: 11 分)
  • 11 番目の鉄道路線を使って、都市 11 から都市 22 へ移動する。(所要時間: 11 分)
  • 33 番目の鉄道路線を使って、都市 22 から都市 44 へ移動する。(所要時間: 11 分)
  • 都市 44 の両替所で、金貨 1919 枚を銀貨 1919 枚と交換する。(所要時間: 19001900 分)
  • 33 番目の鉄道路線を使って、都市 44 から都市 22 へ移動する。(所要時間: 11 分)
  • 11 番目の鉄道路線を使って、都市 22 から都市 11 へ移動する。(所要時間: 11 分)
  • 22 番目の鉄道路線を使って、都市 11 から都市 33 へ移動する。(所要時間: 11 分)
  • 44 番目の鉄道路線を使って、都市 33 から都市 55 へ移動する。(所要時間: 11 分)
  • 都市 55 の両替所で、金貨 6363 枚を銀貨 6363 枚と交換する。(所要時間: 6363 分)
  • 44 番目の鉄道路線を使って、都市 55 から都市 33 へ移動する。(所要時間: 11 分)
  • 22 番目の鉄道路線を使って、都市 33 から都市 11 へ移動する。(所要時間: 11 分)
  • 55 番目の鉄道路線を使って、都市 11 から都市 66 へ移動する。(所要時間: 11 分)
4 6 1000000000
1 2 50 1
1 3 50 5
1 4 50 7
2 3 50 2
2 4 50 4
3 4 50 3
10 2
4 4
5 5
7 7
1
3
5

この入力中の鉄道網は以下のようなものです。

図

2 1 0
1 2 1 1
1 1000000000
1 1
1000000001

この入力中の鉄道網は以下のようなものです。

図

以下のように行動することで、 都市 11 から都市 2210000000011000000001 分で移動できます。

  • 都市 11 の両替所で、金貨 11 枚を銀貨 11 枚と交換する。(所要時間: 10000000001000000000 分)
  • 11 番目の鉄道路線を使って、都市 11 から都市 22 へ移動する。(所要時間: 11 分)