CF1422D Returning Home
题目描述
Yura 已经走了一段时间,现在打算回家。他需要尽快回到家。为此,Yura 可以利用城市中的“瞬移点”。
我们将城市表示为 $n \times n$ 的方格区域。Yura 需要从坐标为 $(s_x, s_y)$ 的格子走到坐标为 $(f_x, f_y)$ 的格子。每分钟,Yura 可以移动到相邻的格子(即上下左右四个方向)。此外,城市中有 $m$ 个“瞬移点”,它们的坐标已知。如果 Yura 当前位置的 $x$ 坐标或 $y$ 坐标与某个瞬移点相同,他可以瞬间移动到该瞬移点,无需花费时间。
请帮助 Yura 计算回家所需的最短时间。
输入格式
第一行包含两个整数 $n$ 和 $m$,分别表示城市的规模和瞬移点的数量($1 \leq n \leq 10^9$,$0 \leq m \leq 10^5$)。
第二行包含四个整数 $s_x$、$s_y$、$f_x$、$f_y$,分别表示 Yura 的起始位置和家的坐标($1 \leq s_x, s_y, f_x, f_y \leq n$)。
接下来的 $m$ 行,每行包含两个整数 $x_i$、$y_i$,表示第 $i$ 个瞬移点的坐标($1 \leq x_i, y_i \leq n$)。
输出格式
输出一个整数,表示 Yura 回家所需的最短时间。
说明/提示
在第一个样例中,Yura 需要从 $(1, 1)$ 走到 $(5, 5)$。他可以先利用第二个瞬移点(因为它的 $y$ 坐标与 Yura 的 $y$ 坐标相同),然后步行:$(4, 1) \to (4, 2) \to (4, 3) \to (5, 3) \to (5, 4) \to (5, 5)$,共需 $5$ 分钟。
由 ChatGPT 4.1 翻译