#AT1569. E - Two Currencies

E - Two Currencies

E - 两种货币

现在有 NN 个编号从 11NN 的城市,由 MM 条铁路连接。

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

ii 条铁路双向连接城市 UiU_i 和城市 ViV_i,一次旅行需要消耗 AiA_i 个银币并花费 BiB_i 分钟。你不能用金币支付车费。

每个城市都有一个兑换柜台。在城市 ii 的兑换柜台,你可以用 11 个金币兑换得到 CiC_i 个银币。兑换每个金币需要花费 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

输出:

2
14

样例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

输出:

5
5
7

样例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

输出:

1
9003
14606
16510
16576

样例4:

输入:

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

样例5:

输入:

2 1 0
1 2 1 1
1 1000000000
1 1

输出:

1000000001