#HK5082. 「POI2019 R2」晚餐 Dinners
「POI2019 R2」晚餐 Dinners
题目描述
题目译自 XXVI Olimpiada Informatyczna – II etap Kolacje
Bajtek 和 Bajtyna 多年相恋,习惯在比特城温馨的餐厅共进浪漫晚餐。然而,作为保险代理人,他们工作到晚,常在不同城区结束一天,前往餐厅的路程耗时且费用不菲。
比特城规划完善,交通网络由 个站点和 条路线组成。每条路线连接两个站点,需单独购票。任意两站点间可通过直接或间接路线到达。
每个站点旁设有一家餐厅,擅长不同菜系(地中海风、东方风等),以编号 至 表示。
你的任务是编写程序,帮助 Bajtek 和 Bajtyna 选择聚餐地点,基于他们结束工作的站点和当晚想吃的菜系,计算最小的交通费用。
输入格式
第一行包含两个整数 ,分别表示比特城的站点数和菜系种类。站点编号为 至 。
第二行包含 个整数 ,表示站点 旁餐厅的菜系种类。
接下来的 行描述路线,第 行包含三个整数 $(1 \leq a_j, b_j \leq n, a_j \neq b_j, 0 \leq c_j \leq 10^6)$,表示站点 和 间有路线,票价为 。
下一行包含一个整数 ,表示查询天数。
接下来的 行描述查询,第 行包含三个整数 ,分别表示 Bajtek 结束工作的站点、Bajtyna 结束工作的站点及他们想吃的菜系。
输出格式
输出 行,第 行包含一个整数,表示第 天满足要求的餐厅的最小交通费用。若无符合的餐厅,输出 。
5 4
1 2 3 1 3
1 2 3
2 3 4
2 4 5
3 5 0
4
1 3 3
1 4 2
1 5 1
3 3 4
7
8
7
-1

图中圆圈内数字为站点编号,粗体数字为餐厅菜系,边为路线,边上数字为票价。
- 第一天,两人想吃菜系 的餐厅,位于站点 和 。Bajtek 和 Bajtyna 到这两站的总费用均为 (Bajtek ,Bajtyna )。
- 第二天,选择菜系 的餐厅,仅在站点 。总费用为 。
- 第三天,想吃菜系 的餐厅,位于站点 和 。到站点 费用为 ,到站点 为 ,故选 。
- 第四天,比特城无菜系 的餐厅,故输出 。
附加样例
- ,站点随机连接,所有可能的查询。
- ,站点 的餐厅为菜系 ,每种菜系有 个查询。
- ,站点依次连成线,所有餐厅为菜系 , 个查询,第 个查询站点 和 。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务 | 附加限制 | 分值 |
|---|---|---|
| ,每种菜系恰有一家餐厅 | ||
| 无附加限制 |