#abc164e. [abc164_e]Two Currencies
[abc164_e]Two Currencies
问题描述
有 个编号为 到 的城市,由 条铁路连接。
你现在在城市 ,口袋里有 个金币和 个银币。
第 条铁路双向连接城市 和城市 ,单程需支付 个银币并花费 分钟,不能用金币支付车费。
每个城市都设有兑换柜台。在第 个城市的兑换柜台,你可以用 个金币换取 个银币。每兑换 个金币需要花费 分钟。你可以在每个兑换柜台兑换任意数量的金币。
对于每个 ,找到从城市 到城市 的最短时间。你可以忽略等待火车的时间。
约束条件
- 没有一对 ,使得 。
- 每个城市 都可以通过一些铁路从城市 到达。
- 输入中的所有值都是整数。
输入格式
从标准输入获取输入,格式如下:
输出格式
按照顺序对于每个 ,输出一行包含从城市 到城市 的最短时间。
示例输入1
3 2 1
1 2 1 2
1 3 2 4
1 11
1 2
2 5
示例输出1
2
14
这个输入中的铁路网络如下图所示。
在这个图中,每个城市如下标识:
- 第一行:城市的 ID 编号 (城市 对应的是 )
- 第二行: /
同样,每条铁路如下标识:
- 第一行:铁路的 ID 编号 (输入中的第 条铁路对应的是 )
- 第二行: /
你可以在 分钟内从城市 前往城市 ,具体操作如下:
- 使用第 条铁路,在 分钟内从城市 前往城市 。
你可以在 分钟内从城市 前往城市 ,具体操作如下:
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 在城市 的兑换柜台中,使用 个金币,在 分钟内换取 个银币。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
示例输入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
这个输入中的铁路网络如下图所示:
你可以在 分钟内从城市 前往城市 ,具体操作如下:
- 在城市 的兑换柜台中,使用 个金币,在 分钟内换取 个银币。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
示例输入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
这个输入中的铁路网络如下图所示:
你可以在 分钟内从城市 前往城市 ,具体操作如下:
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 在城市 的兑换柜台中,使用 个金币,在 分钟内换取 个银币。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 在城市 的兑换柜台中,使用 个金币,在 分钟内换取 个银币。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 使用第 条铁路,在 分钟内从城市 前往城市 。
- 使用第 条铁路,在 分钟