CSPR10D. [CSP复赛模拟第10套-D题] 抓鱼

提交1 通过1
通过率100%
时间限制1000ms
内存限制512MiB

题目描述

题目描述

小珅来到了一个大水塘抓鱼。可以把大水塘看作是一个 nn 行 mm 列的二维字符数组。第 xx 行第 yy 列的字符是 ax,ya_{x,y}。如果字符是 . 则表示是在正常水域,如果字符是 @ 则表示有大石头不能通行。

小珅初始在第 x1x_1 行 y1y_1 列。他要抓的鱼在第 x2x_2 行 y2y_2 列。他每次移动可以往上下左右四个方向之一走 1∼k1 \sim k 步(假设走了 tt 步,则必须保证包括起点和终点及路程中的所有点这 t+1t+1 个位置都不能是大石头)。请问他最少几次移动可以到达鱼的位置。如果无法走到,输出 −1-1。

输入格式

第一行三个整数 n,m,kn, m, k。

第二行四个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2。

接下来 nn 行每行 mm 列,第 ii 行第 jj 列为 ai,ja_{i,j}。

输出格式

输出一个整数,即小珅最少几次移动可以到达鱼的位置。如果无法走到,输出 −1-1。

3 5 2
3 3 3 5
@....
..@@.
@..@.
5
7 7 4
1 1 7 7
.......
.......
.......
.......
.......
.......
.......
4
7 7 4
1 1 7 7
.......
.......
.......
.....@.
....@.@
....@..
.....@.
-1

说明/提示

x1≠x2x_1 \ne x_2 或 y1≠y2y_1 \ne y_2

ai,ja_{i,j} 为 . 或 @

保证 ax1,y1a_{x_1,y_1} 和 ax2,y2a_{x_2,y_2} 都不是 @

数据范围

对于 100%100\% 的数据:

1≤n,m,k≤1061 \le n, m, k \le 10^6

1≤n×m≤1061 \le n \times m \le 10^6

1≤x1,x2≤n1 \le x_1, x_2 \le n,1≤y1,y2≤m1 \le y_1, y_2 \le m

子任务 11(1010 分):保证 n=1n = 1。

子任务 22(2020 分):保证 n,m≤1000n, m \le 1000 且 k=1k = 1。

子任务 33(3030 分):保证 k=1k = 1。

子任务 44(4040 分):没有特殊限制。