#240. 公交线路
公交线路
公交线路
一条直线上有 个公交站,依次编号为 。另有 条公交线路,每条线路经过若干个不同的站点。
你可以进行以下操作:
- 从一个站点步行到相邻站点,花费为 ;
- 在一个站点登上任意一条经过该站的公交线路,花费为 ;
- 已经在某条公交线路上时,可以到达该线路经过的任意站点并下车,额外花费为 。
你可以任意安排步行、上车和下车的顺序。请计算从站点 到站点 的最小总花费。
输入格式
第一行包含四个整数 ,分别表示站点数、公交线路数、起点和终点。
接下来 行描述公交线路。每行先给出一个整数 ,随后给出该线路经过的 个站点编号。同一条线路中的站点编号互不重复。
线路中站点的给出顺序不表示公交车的行驶顺序;在同一条线路上,任意两个被列出的站点之间都可以互相到达。
输出格式
输出一个整数,表示从站点 到站点 的最小总花费。
样例输入
10 3 1 10
2 1 4
2 4 7
2 7 10
样例输出
3
样例说明
依次乘坐三条线路可以从 到达 、从 到达 、再从 到达 。每次上车花费 ,总花费为 。
数据范围
- ;
- ;
- 每条线路均满足 ;
- 所有线路的 之和不超过 ;
- 同一条线路内的站点编号互不重复。