#abc164e. [abc164_e]Two Currencies

[abc164_e]Two Currencies

问题描述

NN 个编号为 11NN 的城市,由 MM 条铁路连接。

你现在在城市 11,口袋里有 1010010^{100} 个金币和 SS 个银币。

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
  • 没有一对 i,j(ij)i, j(i \neq j),使得 (Ui,Vi)=(Uj,Vj)(U_i,V_i)=(U_j,V_j)
  • 每个城市 t=2,...,Nt=2,...,N 都可以通过一些铁路从城市 11 到达。
  • 输入中的所有值都是整数。

输入格式

从标准输入获取输入,格式如下:

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 的最短时间。

示例输入1

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

示例输出1

2
14

这个输入中的铁路网络如下图所示。

在这个图中,每个城市如下标识:

  • 第一行:城市的 ID 编号 ii(城市 ii 对应的是 ii
  • 第二行:CiC_i / DiD_i

同样,每条铁路如下标识:

  • 第一行:铁路的 ID 编号 ii(输入中的第 ii 条铁路对应的是 ii
  • 第二行:AiA_i / BiB_i

Figure

你可以在 22 分钟内从城市 11 前往城市 22,具体操作如下:

  • 使用第 11 条铁路,在 22 分钟内从城市 11 前往城市 22

你可以在 1414 分钟内从城市 11 前往城市 33,具体操作如下:

  • 使用第 11 条铁路,在 22 分钟内从城市 11 前往城市 22
  • 在城市 22 的兑换柜台中,使用 33 个金币,在 66 分钟内换取 33 个银币。
  • 使用第 11 条铁路,在 22 分钟内从城市 22 前往城市 11
  • 使用第 22 条铁路,在 44 分钟内从城市 11 前往城市 33

示例输入2

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

示例输出2

5
5
7

这个输入中的铁路网络如下图所示:

Figure

你可以在 77 分钟内从城市 11 前往城市 44,具体操作如下:

  • 在城市 11 的兑换柜台中,使用 22 个金币,在 22 分钟内换取 66 个银币。
  • 使用第 22 条铁路,在 44 分钟内从城市 11 前往城市 33
  • 使用第 44 条铁路,在 11 分钟内从城市 33 前往城市 44

示例输入3

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

示例输出3

1
9003
14606
16510
16576

这个输入中的铁路网络如下图所示:

Figure

你可以在 1657616576 分钟内从城市 11 前往城市 66,具体操作如下:

  • 使用第 11 条铁路,在 11 分钟内从城市 11 前往城市 22
  • 在城市 22 的兑换柜台中,使用 33 个金币,在 90009000 分钟内换取 33 个银币。
  • 使用第 11 条铁路,在 11 分钟内从城市 22 前往城市 11
  • 使用第 22 条铁路,在 11 分钟内从城市 11 前往城市 33
  • 在城市 33 的兑换柜台中,使用 88 个金币,在 56005600 分钟内换取 88 个银币。
  • 使用第 22 条铁路,在 11 分钟内从城市 33 前往城市 11
  • 使用第 11 条铁路,在 11 分钟内从城市 11 前往城市 22
  • 使用第 33 条铁路,在 11 分钟