#ABC170F. 水黾

水黾

水黾

题目描述

水黾すぬけ君住在一个南北 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) 最少需要划几次水。 如果无法从 (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,2c1,Wc_{1,1}c_{1,2} \ldots c_{1,W}
c2,1c2,2c2,Wc_{2,1}c_{2,2} \ldots c_{2,W}
::
cH,1cH,2cH,Wc_{H,1}c_{H,2} \ldots c_{H,W}

输出格式

输出すぬけ君从格子 (x1,y1)(x_1,y_1) 移动到格子 (x2,y2)(x_2,y_2) 所需的最少划水次数。 如果无法从 (x1,y1)(x_1,y_1) 移动到 (x2,y2)(x_2,y_2),输出 -1

样例

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

最初,すぬけ君在格子 (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)
1 6 4
1 1 1 6
......
2
3 3 1
2 1 2 3
.@.
.@.
.@.
-1

数据范围

  • 1H,W,K1061 \leq H,W,K \leq 10^6
  • H×W106H \times W \leq 10^6
  • 1x1,x2H1 \leq x_1,x_2 \leq H
  • 1y1,y2W1 \leq y_1,y_2 \leq W
  • x1x2x_1 \neq x_2y1y2y_1 \neq y_2
  • ci,jc_{i,j}.@
  • cx1,y1=c_{x_1,y_1} = .
  • cx2,y2=c_{x_2,y_2} = .
  • 输入的所有数值均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
1967
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签