#CSP1136. 传送 (teleport)

传送 (teleport)

题目描述

给定二维平面上有 NN 个点。第 ii 个点位于 (Xi,Yi)(X_i, Y_i)。它们之间有 MM 条双向隧道。第 jj 条双向隧道连接 UjU_j 和 VjV_j 两点,从隧道的一端移动到另一端需要 WjW_j 个单位时间。

旅行家有两种旅行方式:通过隧道,或是传送。旅行家可以用 min⁡(∣Xi−Xj∣,∣Yi−Yj∣)\min(|X_i - X_j|, |Y_i - Y_j|) 单位的时间从点 ii 传送到点 jj。在这里,∣x∣|x| 表示 xx 的绝对值。

请你找出从点 11 旅行到所有其他点的最短时间。

输入格式

从 teleport.in 文件读入数据。

第一行输入包含两个整数:N,MN, M。

接下来的 NN 行中,第 ii 行包含两个整数:Xi,YiX_i, Y_i,描述第 ii 个点。

接下来的 MM 行中,第 jj 行包含三个整数:Uj,Vj,WjU_j, V_j, W_j,描述第 jj 条双向隧道。

输出格式

输出到 teleport.out 文件。

输出一行 N−1N - 1 个整数,其中第 ii 个整数是从点 11 旅行到点 i+1i + 1 所需的最短时间。

样例

5 4
1 1
4 6
3 4
4 3
6 6
1 2 2
1 3 1
3 4 1
4 5 5
2 1 2 2

样例 2

点击链接 ex_teleport2.in 和 ex_teleport2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于所有测试数据,

2≤N≤2×1052 \leq N \leq 2 \times 10^5,

0≤M≤2×1050 \leq M \leq 2 \times 10^5,

对于所有 1≤i≤N1 \leq i \leq N,1≤Xi,Yi≤1091 \leq X_i, Y_i \leq 10^9,

对于所有 i≠ji \neq j,(Xi,Yi)≠(Xj,Yj)(X_i, Y_i) \neq (X_j, Y_j),

对于所有 1≤j≤M1 \leq j \leq M,1≤Uj≠Vj≤N1 \leq U_j \neq V_j \leq N

对于所有 1≤j≤M1 \leq j \leq M,1≤Wj≤1091 \leq W_j \leq 10^9。

子任务 分数 附加约束条件
11 1212 M=0M = 0,对于所有 1≤i≤N1 \leq i \leq N,Xi=YiX_i = Y_i
22 2828 N≤1000N \leq 1000
33 2323 对于所有 1≤i≤N1 \leq i \leq N,Xi=YiX_i = Y_i
44 3737 无附加限制