旅行线路 (cowroute.*)

旅行线路 (cowroute.*)

【题目描述】
Bessie 想到一个更温暖的地方去度过这个寒冷的冬天。不幸的是,她发现只有一家名叫Air Bovinia的航空公司愿意把票卖给奶牛;而且这些票的构成有些奇怪。Air Bovinia 拥有N 架飞机,每驾都有一个特定的“飞行路线”,这个飞行路线包含2 个或更多的城市。例如,一架飞机的路线可能是从城市1 开始,然后飞到城市5,再飞到城市2,最后飞到城市8。没有城市会在一条路线上出现多次。如果Bessie 决定使用这个路线,她可以在一条路线的任意一个城市上飞机,然后在路线上任意一个城市下飞机。她不用一定在第一个城市上飞机,在最后一个城市下飞机。每条路线会有一个价格,不管Bessie 沿途经过多少城市,她都要付这么多钱。
Bessie 想从城市A 到城市B 。由于她不想被复杂的行程困惑,她想只使用不超过两条的路线。请帮她决定她最少应该付多少钱。
注意:Bessie 可以使用最多两条路线。
【输入格式】
第一行包含3 个数字A, B, N。
接下来2*N 行描述可用的路线,每条路线的描述占两行。
第一行包含路线费用,以及沿途有多少个城市(不超过500 个)。
第二行包含一个按顺序的城市的列表。每个城市用一个数字表示,不会超过
10000。
【输出格式】
输出Bessie 用一条飞行路线从城市A 飞到城市B 的最小费用。如果没有这样的路线,输出-1。
【样例输入】
1 2 3
3 3
3 2 1
4 4
2 1 4 3
8 5
4 1 7 8 2
【样例输出】
7
【样例解释】
这里有一个便宜的用两条线路的方案(用路线2 从城市1 到城市3,再用路线1 从城市3 到城市2)。
【数据规模】
对于20% 的数据,满足:N ≤10。
对于40% 的数据,满足:N ≤100。
对于100% 的数据,满足:N ≤500。