全程至多换装一次,所以只可能出现三种情况:发车站和收样站相同、只坐一条班线、或者先后坐两条不同的班线。
检验所要把一份冷藏试剂从发车站送到收样站。承运方不临时加站,只开若干条事先排定的固定班线。
一条班线按照行驶先后经过若干站点,站号在本线内部互不重复。试剂可以在其中某个站上车,再在更靠后的某个站下车,不能调头逆行。只要真正坐过任意一截,就要一次付清该线的整笔包车费;同一条班线至多坐一次。
冷藏条件限制了换装次数。全程最多换装一次,所以至多动用两条班线:或者单靠一条班线就把试剂从发车站带到收样站,或者先坐第一条到某个中途站,再改乘另一条送到收样站。
请算出完成这次运送的最低包车费。发车站与收样站编号相同时,试剂不必上车,费用记为 0。
第一行一个整数 m,表示班线条数。
第二行两个整数 q 和 p,依次为收样站、发车站。
其后每条班线占两行。第一行两个整数 k 和 f,依次为途经站点数、包车费;第二行 k 个整数,按行驶顺序给出站点编号。
1≤m≤1000
1≤p,q≤10000
1≤k,f≤10000
站点编号介于 1 和 10000。每条班线列出的站号彼此都不一样。
输出一个整数,表示最低包车费。若最多两条班线仍无法送达,输出 −1。
输入
3
8 4
4 6
4 1 6 8
3 3
4 2 5
3 2
5 7 8
输出
5
说明
第一条班线经过 4,1,6,8,包车费 6,发车站在收样站之前,可以直达。
第二条经过 4,2,5,费用 3;第三条经过 5,7,8,费用 2。在站点 5 下车再上车,两笔费用相加为 5,比直达少。站点 2 和 7 都接不到收样站。
输入
2
4 1
3 5
1 2 3
3 4
2 5 6
输出
-1
说明
两条班线的站点分别是 1,2,3 和 2,5,6。收样站 4 没有出现,换装也无法到达。
输入
3
9 2
4 4
7 2 6 9
3 1
9 6 2
3 3
6 8 9
输出
4
说明
发车站 2 位于第一条班线的中段,其后才是收样站 9,直达费用为 4。
第二条的顺序是 9,6,2,收样站排在发车站前面,不能倒着坐,费用 1 用不上。
第三条可在站点 6 接上并送到 9,总费用 4+3=7,高于直达。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册