奶牛的路线
厌烦了冬天农场的寒冷,奶牛贝西打算飞去一个温暖的地方度假。不幸的是,她发现只有一条航线——博维尼亚航空公司打算出售机票给奶牛,而且这些票的组成有些复杂。
博维尼亚航空公司拥有N条航线,每一条都有一个包括两个以上城市的特定路线。比如说,一架飞机可能会按照从城市1开始,飞到城市5,再到城市2,最后到达城市8的路线飞行。没有城市会在同一航线中重复出现。如果贝西选择使用一条航线,她可以在航线上任何一个城市登机或离机。她不必在第一个城市登机或在最后一个城市离机。每一条航线都有一个确定的价格,如果贝西选择了航线上的任何一部分,无论她经过了航线上多少个城市,都要付出这样多的钱。如果贝西在他的旅行中重复使用了一条航线(就是说,如果她离开了一条航线,之后又在某个城市回到了这条航线),那么她必须为每次使用分别付账。
贝西想要找到一条从她的农场(在城市A中)到她在热带的目的地(城市B)最廉价的路线。请帮她计算出他必须花费的最小的费用,同时为了达到这个费用所需经过的城市数最少是多少。
【输入】(cowroute.in)
第一行输入包括A,B和N,用空格分开。
接下来的2N行描述每条可用的航线,每条航线两行。第一行包括使用这条航线的费用(一个1~1,000,000,000之内的整数)和这条航线上的城市数(一个1~100内的整数)。第二行按顺序列出了航线上的城市,每个城市有一个范围在1~1000内的标号。注意航线的费用可能会超过32位整数所能容纳的范围,所以你应该使用64位整数(LL大法好)。
【输入样例】
3 4 3
3 5
1 2 3 4 5
2 3
3 5 4
1 2
1 5
【输出】(cowroute.out)
输出贝西从城市A到城市B所需花费的最小费用