AT_abc241_f.[ABC241F] Skate

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个 HH 行 WW 列的网格状滑冰场。第 ii 行第 jj 列的格子用 (i,j)(i,j) 表示。

滑冰场上有 NN 个障碍物,第 ii 个障碍物位于 (Xi,Yi)(X_i,Y_i)。

高桥君每次移动时,可以选择上下左右任意一个方向,并一直滑行,直到撞到障碍物为止。
撞到障碍物时,会停在障碍物前一个格子。滑冰场四周是悬崖,不能进行不会撞到障碍物的移动。

高桥君一开始在 (sx,sy)(s_x,s_y),他希望通过若干次移动,最终停在 (gx,gy)(g_x,g_y)。

到达 (gx,gy)(g_x,g_y) 至少需要多少次移动?如果无法到达,请输出无法到达的信息。

输入格式

输入以如下格式从标准输入读入。

HH WW NN sxs_x sys_y gxg_x gyg_y X1X_1 Y1Y_1 X2X_2 Y2Y_2 ⋮\vdots XNX_N YNY_N

输出格式

输出到达 (gx,gy)(g_x,g_y) 至少需要多少次移动。
如果无法到达,则输出 -1。

输入输出样例

  • 输入#1

    7 8 7
    3 4
    5 6
    1 4
    2 1
    2 8
    4 5
    5 7
    6 2
    6 6

    输出#1

    4
  • 输入#2

    4 6 2
    3 2
    3 5
    4 5
    2 5

    输出#2

    -1
  • 输入#3

    1 10 1
    1 5
    1 1
    1 7

    输出#3

    -1

说明/提示

限制条件

  • 1≤H≤1091 \leq H \leq 10^9
  • 1≤W≤1091 \leq W \leq 10^9
  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤sx,gx≤H1 \leq s_x, g_x \leq H
  • 1≤sy,gy≤W1 \leq s_y, g_y \leq W
  • 1≤Xi≤H1 \leq X_i \leq H
  • 1≤Yi≤W1 \leq Y_i \leq W
  • (sx,sy)≠(gx,gy)(s_x, s_y) \neq (g_x, g_y)
  • (sx,sy)≠(Xi,Yi)(s_x, s_y) \neq (X_i, Y_i)
  • (gx,gy)≠(Xi,Yi)(g_x, g_y) \neq (X_i, Y_i)
  • 若 i≠ji \neq j,则 (Xi,Yi)≠(Xj,Yj)(X_i, Y_i) \neq (X_j, Y_j)
  • 所有输入均为整数

样例解释 1


图中,(sx,sy)(s_x,s_y) 用 S 表示,(gx,gy)(g_x,g_y) 用 G 表示。按照 (3,4)→(2,4)→(2,2)→(5,2)→(5,6)(3,4)\rightarrow(2,4)\rightarrow(2,2)\rightarrow(5,2)\rightarrow(5,6) 的顺序移动,可以在 44 次移动后到达 (gx,gy)(g_x,g_y)。

样例解释 2


必须停在 (gx,gy)(g_x,g_y)。仅仅经过 (gx,gy)(g_x,g_y) 并不算到达。

样例解释 3


如果选择向左移动,高桥君会经过 (gx,gy)(g_x,g_y) 后掉下悬崖。注意,滑冰场四周是悬崖,不能进行不会撞到障碍物的移动。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页