混水摸鱼
题目描述
すぬけ君 来到了一个大水塘抓鱼。可以把大水塘看作是一个 n 行 m 列的二维字符数组。第 x 行第 y 列的字符是 ax,y。如果字符是 . 则表示是在正常水域,如果字符是 @ 则表示有大石头不能通行。
すぬけ君 初始在第 x1 行 y1 列。 他要抓的鱼在第 x2 行第 y2 列。他每次移动可以往上下左右四个方向之一走 1∼k 步(假设走了 x 步,则必须保证包括起点和终点及路程中的所有点这 x+1 个位置都不能是大石头)。请问他最少几次移动可以到达鱼的位置。如果无法走到,输出 −1。
输入格式
第一行三个整数,n,m,k。
第二行四个整数,x1,y1,x2,y2。
接下来 n 行每行 m 列,第 i 行第 j 列为 ai,j。
输出格式
输出一个整数,即 すぬけ君 最少几次移动可以到达鱼的位置。如果无法走到,输出 −1。
数据规模与约定
对于 100% 的数据,保证:
- 1≤n,m,k≤106
- 1≤n×m≤106
- 1≤x1,x2≤n
- 1≤y1,y2≤m
- x1=x2 或者 y1=y2
- ai,j 为
. 或 @
- 保证 ax1,y1 和 ax2,y2 都不是
@