#B4387. [语言月赛 202508] 中转达人
[语言月赛 202508] 中转达人
题目背景
扶苏经常坐飞机旅行。对于从 地到达 地的旅行需求,共有两种方法可以解决,一是直接乘坐从 地飞往 地的飞,称为直飞;另一种是从 地飞往另一个中间城市 ,再从 飞往 ,称为经 地中转。有时,从中间城市中转的价格比直飞更便宜。
题目描述
某航司的航线覆盖了 个城市。城市从 到 编号。两个城市之间可能有航线,也可能没有航线。一条航线可能会有两种票价,一是普通经济舱票价 Y,二是中转折扣票价 T。一些航线可能只有普通经济舱而不售卖中转折扣票。
对于从城市 出发,到达城市 的单向航线,用 表示这条航线的普通经济舱票价, 表示这条航线的中转折扣票价。航线是单向的意味着:
- 可能 到 有航线,但是 到 没有航线;
- 可能 ,可能 。
扶苏共有 个旅行计划,每个计划有一个出发城市 和一个到达城市 ,她将从城市 出发,前往城市 。她有两种选择:
- 如果 到 有直飞的航线,可以花费 购买普通经济舱机票前往 。
- 选择另一个城市 ,使得 到 、 到 均有中转折扣票售卖,然后花费 元购买两程中转折扣票,经 地中转到达 。
扶苏会选择两种方案中花费较小的方案。当然,如果只有其中一种方案可用,她会选择该方案。
现在,给定飞机每条航线的机票价格,你要对每个旅行计划求出花费最小的方案的花费。
输入格式
第一行是两个整数,表示城市数量 和计划数量 。
接下来 行,每行 个整数,表示普通经济舱票价。第 行的第 个整数表示城市 飞往城市 的普通经济舱票价 。如果 到 没有航线,则 。
接下来 行,每行 个整数,表示中转折扣票价。第 行的第 个整数表示城市 飞往城市 的中转折扣票价 。如果 到 没有航线或不售卖中转折扣票,则 。
接下来 行,每行两个整数 ,表示一个飞行计划。
输出格式
对于每个飞行计划,输出一行一个整数表示最小的花费。
如果该计划从 无论如何无法到达 ,输出 。
3 3
-1 5 10
15 -1 5
5 10 -1
-1 3 -1
-1 -1 1
-1 -1 -1
1 3
1 2
2 1
4
5
15
提示
测试点编号 | 特殊约定 | |
---|---|---|
无 | ||
(对 ) | ||
无 |
对全部的测试数据,保证 ,,,。,。数据保证若 则 。