#abc271e. [abc271_e]Subsequence Path
[abc271_e]Subsequence Path
题目描述
有 个编号为 的城镇,以及 条编号为 的道路。
每条道路都是有向的;道路 将你从城镇 带到城镇 。道路 的长度为 。
给定一个长度为 的序列 ,其中的元素为介于 和 之间的整数。使用道路从城镇 到城镇 的旅行方式被称为好路径,如果:
- 道路号码的序列按照路径中使用的顺序排列是 的子序列。
请注意,一个序列的子序列是通过删除原始序列中的 个或多个元素,并将剩余的元素连接起来而得到的,而不改变它们的顺序。
找到使用好路径所使用的道路长度之和的最小值。
如果没有好路径,请报告这个事实。
约束条件
- $1 \leq A_i, B_i \leq N, A_i \neq B_i \, (1 \leq i \leq M)$
- 输入中的所有值都为整数。
输入
输入以以下格式从标准输入中给出:
输出
找到使用好路径所使用的道路长度之和的最小值。
如果没有好路径,请输出 -1
。
样例输入 1
3 4 4
1 2 2
2 3 2
1 3 3
1 3 5
4 2 1 2
样例输出 1
4
有两条可能的好路径如下:
- 使用道路 。在这种情况下,使用的道路长度之和为 。
- 按顺序使用道路 和 。在这种情况下,使用的道路长度之和为 。
因此,期望的最小值为 。
样例输入 2
3 2 3
1 2 1
2 3 1
2 1 1
样例输出 2
-1
没有好路径。
样例输入 3
4 4 5
3 2 2
1 3 5
2 4 7
3 4 10
2 4 1 4 3
样例输出 3
14