#CYTUS4. 离站准备
离站准备
有 n 个通信终端位于一条直线上。终端 i 的坐标为 x_i,每次从它发出一条消息需要准备费用 c_i。它支持一个或两个频道。
如果终端 i 与终端 j 至少有一个共同频道,消息就可以从 i 直接发送到 j,费用为:
c_i + |x_i − x_j|
一次直接发送可以跨过任意多个其他终端,不会因此在那些终端重新发送或收取准备费用。
消息也可以经过若干终端转发。每次转发都按上述规则重新收费。不同终端可以有相同的坐标。
求将一条消息从终端 s 送到终端 t 的最小总费用。如果无法送达,输出 −1。如果 s=t,可以不发送,费用为 0。
输入格式
本题只有一组输入数据。
第一行包含四个整数 n、k、s、t,分别表示终端数、频道总数、起点和终点。
接下来 n 行,第 i 行的格式为:
x_i c_i d_i h_1 h_2 ... h_{d_i}
其中 d_i 为终端 i 支持的频道数量,后面的 d_i 个整数为频道编号。
输出格式
输出最小总费用;无法送达时输出 −1。
数据范围
- 1 ≤ n,k ≤ 200000;
- 1 ≤ s,t ≤ n;
- −10^9 ≤ x_i ≤ 10^9;
- 0 ≤ c_i ≤ 10^9;
- 1 ≤ d_i ≤ min(2,k);
- 每个频道编号在 [1,k] 内,同一个终端的频道编号互不相同。
样例
4 2 1 4
0 2 1 1
5 100 1 1
10 1 2 1 2
12 7 1 2
15
说明:从终端 1 直接发送到终端 3,费用为 2+10=12;再从终端 3 发送到终端 4,费用为 1+2=3。第一步跨过终端 2,但不收取终端 2 的准备费用。
相关
在下列比赛中: