AT_abc170_f.[ABC170F] Pond Skater

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

水黾君住在一个南北方向有 HH 行、东西方向有 WW 列的矩形网格状池塘中。我们将从北往南第 ii 行、从西往东第 jj 列的格子记作格子 (i,j)(i,j)。

有些格子上漂浮着荷叶,水黾君不能进入这些格子。若 cijc_{ij} 为 @,表示格子 (i,j)(i,j) 上有荷叶;若为 .,则表示没有荷叶。

水黾君每次划水可以向东西南北任意一个方向移动不少于 11 格、不多于 KK 格。在移动过程中,不能经过有荷叶的格子,也不能移动到有荷叶的格子或池塘外面。

请你求出水黾君从格子 (x1,y1)(x_1,y_1) 移动到 (x2,y2)(x_2,y_2) 至少需要划水多少次。如果无法到达,请指出这一点。

输入格式

输入按以下格式从标准输入给出。

HH WW KK x1x_1 y1y_1 x2x_2 y2y_2
c1,1c1,2…c1,Wc_{1,1}c_{1,2}\ldots c_{1,W}
c2,1c2,2…c2,Wc_{2,1}c_{2,2}\ldots c_{2,W}
⋮\vdots
cH,1cH,2…cH,Wc_{H,1}c_{H,2}\ldots c_{H,W}

输出格式

输出水黾君从格子 (x1,y1)(x_1,y_1) 到 (x2,y2)(x_2,y_2) 至少需要划水的次数。如果无法到达,则输出 -1。

输入输出样例

  • 输入#1

    3 5 2
    3 2 3 4
    .....
    .@..@
    ..@..

    输出#1

    5
  • 输入#2

    1 6 4
    1 1 1 6
    ......

    输出#2

    2
  • 输入#3

    3 3 1
    2 1 2 3
    .@.
    .@.
    .@.

    输出#3

    -1

说明/提示

限制条件

  • 1≤H,W,K≤1061\leq H,W,K\leq 10^6
  • H×W≤106H\times W\leq 10^6
  • 1≤x1,x2≤H1\leq x_1,x_2\leq H
  • 1≤y1,y2≤W1\leq y_1,y_2\leq W
  • x1≠x2x_1\neq x_2 或 y1≠y2y_1\neq y_2
  • ci,jc_{i,j} 只为 . 或 @
  • cx1,y1=.c_{x_1,y_1} = .
  • cx2,y2=.c_{x_2,y_2} = .
  • 所有输入均为整数。

样例解释 1

一开始,水黾君在格子 (3,2)(3,2)。可以通过如下 55 次划水到达格子 (3,4)(3,4):

  • 从 (3,2)(3,2) 向西移动 11 格,到达 (3,1)(3,1)。
  • 从 (3,1)(3,1) 向北移动 22 格,到达 (1,1)(1,1)。
  • 从 (1,1)(1,1) 向东移动 22 格,到达 (1,3)(1,3)。
  • 从 (1,3)(1,3) 向东移动 11 格,到达 (1,4)(1,4)。
  • 从 (1,4)(1,4) 向南移动 22 格,到达 (3,4)(3,4)。

由 ChatGPT 4.1 翻译

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

首页