A83490.Olya and Energy Drinks

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Olya 喜欢能量饮料。她非常喜欢,以至于她的房间里到处都是喝完的饮料罐。

形式化地说,她的房间可以用一个 n×mn \times m 的网格表示,每个格子要么是空的,要么被饮料罐占据。

Olya 喝了很多能量饮料,现在她每秒可以跑 kk 米。每一秒她可以选择四个方向之一(上、下、左或右),然后在该方向上连续跑 11kk 米。当然,她只能经过空的格子。

现在 Olya 需要从格子 (x1,y1)(x_{1},y_{1}) 跑到格子 (x2,y2)(x_{2},y_{2})。如果她以最优方式移动,最少需要多少秒?

保证 (x1,y1)(x_{1},y_{1})(x2,y2)(x_{2},y_{2}) 这两个格子都是空的,这两个格子可以是同一个。

输入格式

第一行包含三个整数 nnmmkk1n,m,k10001 \leq n, m, k \leq 1000)——表示房间的大小和 Olya 的速度。

接下来 nn 行,每行包含 mm 个字符,第 ii 行第 jj 个字符是 "#",表示格子 (i,j)(i, j) 被饮料罐占据,否则是 ".",表示格子是空的。

最后一行包含四个整数 x1,y1,x2,y2x_{1},y_{1},x_{2},y_{2}1x1,x2n1 \leq x_{1}, x_{2} \leq n1y1,y2m1 \leq y_{1}, y_{2} \leq m),表示起点和终点的坐标。

输出格式

输出一个整数,表示 Olya 从 (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-1

输入输出样例

  • 输入#1

    3 4 4
    ....
    ###.
    ....
    1 1 3 1
    

    输出#1

    3
  • 输入#2

    3 4 1
    ....
    ###.
    ....
    1 1 3 1
    

    输出#2

    8
  • 输入#3

    2 2 1
    .#
    #.
    1 1 2 2
    

    输出#3

    -1

说明/提示

样例说明
在第一个样例中,Olya 第一秒向右跑 33 米,第二秒向下跑 22 米,第三秒向左跑 33 米。

在第二个样例中,Olya 需要向右跑 33 秒,然后向下跑 22 秒,再向左跑 33 秒。

Olya 不推荐大家喝能量饮料,并且认为这其实并不好。

首页