150. 24年9月-华为留学生-1.最好的通勤体验
难度 7- 标签:
24年9月-华为留学生-1.最好的通勤体验
题目内容
小明是一名环保爱好者,每天选择乘坐公交车上班。不同线路上的公交车会在规定的路线上单向循环行驶,例如708路公交的路线为[2,5,8],那么公交车会按照2->5->8->2->5->8->...的路线循环行驶,其中路线中的数字为公交站台编号。小明每天上班会从离他家里最近的公交站台上车,然后在他最喜欢的早餐店所在的站台下车买好早餐然后再上车,最后在离公司最近的公交站台下车,允许不限次数地在中途下车换乘其他路线的公交。现在分别给定小明上车、早餐店、下车的公交站台编号,请帮他选择最佳的乘车路线,使乘坐的公交车总数最少(如果在同1条公交路线中下车再上车,仍然视为乘坐同一辆车),从而获得最好的通勤体验。
输入描述
第一行有3个数字,分别表示上车的公交站台编号、早餐店的公交站台编号、下车公交站台编号,依次用空格隔开。第二行表示公交路线数量,后续的每一行中第1个数字代表该路线的总站台数,剩余的数字表示每条公交路线经过的站点编号,所有数字用空格隔开。公交路线数量范围在[1,500]。公交站台的编号范围在[1,1000000]。每条公交路线经过的站台数量范围在[2,1500],路线中的站台编号按升序顺序排序,且每条路线中不包含重复的站台。起点站台、购买早餐的站点、终点站台不重复。
输出描述
乘坐的公交路线总数,如果没有匹配的路线请返回-1。
样例1
输入
1 3 5
3
1 2 5
3 2 3 7
2 5 7
输出
3
说明
先乘坐第1条公交路线的车,在第2个站点下车转第2条路线的公交车,然后再乘坐第2条公交路线的车在站点3下车买早餐,然后重新乘坐第2条公交路线达到站点7下车转第4条公交路线,最后达到站点5,经过的公交路线为1->2->4,所以结果为3。虽然乘坐第1条公交路线和第3条公交路线也能达到站点5,但是该路线没法购买早餐。
样例2
输入
1 3 4
2
3 1 2 4
3 3 5 6
输出
-1
说明
小王只能乘坐第1条公交路线上车,但是无法通过该路线的站台换乘到第2条公交路线购买早餐,没有匹配的路线,返回-1。
样例3
输入
4 19 28
5
5 3 4 7 8 10
6 10 12 16 19 27 28
4 5 7 11 17
4 17 19 22 23
3 23 27 28
输出
2
说明
小王可以选择1->2的公交路线,乘坐的公交车总数为2,也可以选择1->3->4->5的公交路线,乘坐的公交车总数为4,因此最佳的乘车路线是1->2,结果为2。