Module: Dijkstra 算法


Problem

7 /14


乘火车回家

Problem

其中一支参加奥林匹克运动会的队伍决定乘火车回家。同时,小伙子们也想尽快回家。不幸的是,并非所有的电动火车都从举办奥林匹克运动会的城市开往人们居住的车站。而且,更令人反感的是,并不是所有经过他们车站的电动火车都停在它那里(而且一般来说,电动火车不会在他们经过的所有车站都停)。
 
线路上的所有站点都从 1 到 N 编号。同时,1 号站点位于举办奥林匹克运动会的城市,在 0 时刻,小伙子们到达该站点。伙计们需要到达的车站编号为 E。
 
编写一个程序,在给定火车时刻表的情况下,计算这些人可以在家的最短时间。
 
输入
在输入文件中 先写数字 N (2 ≤ N ≤ 100) 和 E (2 ≤ E ≤ N)。然后写上数字M(0 ≤ M ≤ 100),表示火车运行的次数。下面是对M趟电动火车的描述。每趟火车航班的描述都以数字 Ki (2 ≤ Ki ≤ N) ——它停靠的站点数,后面是 Ki 对数字,每对数字的第一个数字指定站点编号,第二个 -mdash;列车停靠该站的时间(时间用0到109之间的整数表示)。同一航班内的站点按时间升序排列。在一次旅行中,火车始终沿同一方向行驶——远离城市或靠近城市。
 
输出
输出文件 打印一个数字——伙计们可以在他们的岗位上的最短时间。如果他们无法通过现有的火车路线到达那里,请打印 –1。

例子 <头> <日># <正文>
输入 输出
1
5 2
2
4 1 1 3 2 4 10 5 20
3 5 10 4 15 2 40
40