#P15564. [Nsi2025十年级]LOST

[Nsi2025十年级]LOST

题目描述

有一天,Dancho 弄丢了他的麻雀。麻雀非常聪明,想要回到 Dancho 身边,而 Dancho 只是决定躺着等它回来。

现在 Dancho 和麻雀位于一个有 RRCC 列的网格中。某些格子里有人,麻雀害怕经过这些格子,因此它只会在空格子之间移动。

由于只走空格子并不总是能回到 Dancho 身边,麻雀决定使用自己的特殊能力:它可以选择一个 N×NN \times N 的子矩形,并把其中所有人都赶走。也就是说,这个 N×NN \times N 的正方形区域内的所有格子都会变成可以通过的空格子。

麻雀经历了很多事情后已经非常疲惫,因此它想知道最少需要使用多少次这种特殊能力,才能使自己能够到达 Dancho 所在的位置。

请编写程序 lost,帮助它回答这个问题。

输入格式

第一行输入三个整数 R,C,NR,C,N,分别表示网格的行数、列数,以及麻雀一次可以清空的正方形边长。

第二行输入两个整数 Sr,ScS_r,S_c,表示麻雀初始所在的行和列。

第三行输入两个整数 Gr,GcG_r,G_c,表示 Dancho 所在的行和列。

接下来 RR 行,每行一个长度为 CC 的字符串,描述网格:

  • # 表示该格子中有人;
  • . 表示该格子为空,可以通过。

行列编号均从 11 开始。

输出格式

输出一行一个整数,表示为了让麻雀能够到达 Dancho,最少需要使用特殊能力的次数。

数据范围

  • 1NR,C1 \le N \le R,C
  • R×C6×106R \times C \le 6 \times 10^6
  • 1SrR1 \le S_r \le R
  • 1ScC1 \le S_c \le C
  • 1GrR1 \le G_r \le R
  • 1GcC1 \le G_c \le C
  • (Sr,Sc)(Gr,Gc)(S_r,S_c) \ne (G_r,G_c)
  • 起点 (Sr,Sc)(S_r,S_c) 和终点 (Gr,Gc)(G_r,G_c) 所在格子都没有人。

子任务

子任务 分值 NN R×CR\times C 其他限制 依赖子任务
1 0 - 样例测试 -
2 8 =1=1 1.5×106\le 1.5\times 10^6 -
3 19 - 103\le 10^3 1
4 6×104\le 6\times 10^4 3
5 10 1.5×105\le 1.5\times 10^5 4
6 19 1.5×106\le 1.5\times 10^6 2, 5
7 13 3×106\le 3\times 10^6 6
8 12 7

只有通过某个子任务的所有测试点,才能获得该子任务分数。

样例 1

输入

2 4 2
1 1
2 4
.###
###.

输出

1

样例 2

输入

6 6 1
1 6
6 1
..#.#.
##.###
####.#
...###
##.##.
.#.###

输出

4