#801
Unrated
迷路 (Maze)
서브테스크
시간 제한
2s
메모리 제한
2048MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

迷路を解くのが好きな K 理事長は,迷路になりそうなマス目を見つけた.マス目は縦 RR 行,横 CC 列の長方形の形をしており,各マスは白または黒で塗られている.上から ii 行目 (1iR1 \le i \le R),左から jj 列目 (1jC1 \le j \le C) のマスをマス (i,j)(i, j) と呼ぶことにする.

K 理事長は,マス目の白いマスは通れるマス,黒いマスは通れないマスとして,迷路を解くことにした.具体的には,以下のようにして迷路を解く.

  1. 白いマスの中からスタートのマス (Sr,Sc)(S_r, S_c) とゴールのマス (Gr,Gc)(G_r, G_c) を選ぶ.
  2. 上下左右に隣接する白いマスに移動することを繰り返して,スタートのマスからゴールのマスへ移動する経路を見つける.

K 理事長はスタートのマスとゴールのマスを決めたが,マス目の色の塗られ方によっては,白いマスのみを通ってスタートからゴールへ移動する経路が存在しない場合があることに気がついた.そこで,K 理事長の持っている N×NN \times N マスの大きさのハンコを用いて以下の操作を繰り返すことで,スタートからゴールへ移動する経路が存在するようにしたい.

操作 マス目から N×NN \times N マスの正方形の領域を選び,この領域に含まれるマスをすべて白にする.より厳密には,1aRN+11 \le a \le R - N + 11bCN+11 \le b \le C - N + 1 を満たす整数 a,ba, b を選び,aia+N1a \le i \le a + N - 1bjb+N1b \le j \le b + N - 1 を満たすすべての整数の組 (i,j)(i, j) に対して,マス (i,j)(i, j) を白にする.

ハンコを使うと手が汚れる可能性があるため,操作回数はできるだけ少なくしたい.マス目の塗られ方とハンコの大きさ,スタートのマスとゴールのマスが与えられたとき,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようにするための,操作回数の最小値を求めるプログラムを作成せよ.

입력

入力は以下の形式で標準入力から与えられる.

R C N
S_r S_c
G_r G_c
A_1
A_2
...
A_R

AiA_i (1iR1 \le i \le R) は . または # からなる長さ CC の文字列である.AiA_ijj 文字目 (1jC1 \le j \le C) はマス (i,j)(i, j) の色を表し,. はそのマスの色が白であることを,# はそのマスの色が黒であることを表す.

출력

標準出力に,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようにするための操作回数の最小値を 1 行で出力せよ.

제한

  • 1NRC1 \le N \le R \le C
  • R×C6000000R \times C \le 6\,000\,000
  • 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)
  • AiA_i (1iR1 \le i \le R) は . または # からなる長さ CC の文字列である.
  • マス (Sr,Sc)(S_r, S_c) の色は白である.
  • マス (Gr,Gc)(G_r, G_c) の色は白である.
  • R,C,N,Sr,Sc,Gr,GcR, C, N, S_r, S_c, G_r, G_c は整数である.

서브태스크

  1. (88 점) N=1N = 1R×C1500000R \times C \le 1\,500\,000
  2. (1919 점) R×C1000R \times C \le 1\,000
  3. (1616 점) 答えは 1010 以下である,R×C1500000R \times C \le 1\,500\,000
  4. (1919 점) R×C60000R \times C \le 60\,000
  5. (55 점) R×C150000R \times C \le 150\,000
  6. (1919 점) R×C1500000R \times C \le 1\,500\,000
  7. (88 점) R×C3000000R \times C \le 3\,000\,000
  8. (66 점) 追加の制約はない.

예제 입력 1

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

예제 출력 1

1

(a,b)=(1,2)(a, b) = (1, 2) を選んで 1 回操作を行い,マス (1,2),(1,3),(2,2),(2,3)(1, 2), (1, 3), (2, 2), (2, 3) を白にすると,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようになる.例えば,経路 (1,1)(1,2)(1,3)(2,3)(2,4)(1, 1) \to (1, 2) \to (1, 3) \to (2, 3) \to (2, 4) はその 1 つである.

操作を 1 回も行わない場合,白いマスのみを通ってスタートからゴールへ移動する経路は存在しないから,1 を出力する.

この入力例は小課題 2, 3, 4, 5, 6, 7, 8 の制約を満たす.

예제 입력 2

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

예제 출력 2

4

この入力例はすべての小課題の制約を満たす.

예제 입력 3

6 7 6
6 4
3 1
..#.#.#
##.##..
.######
#..#.#.
.######
..#.##.

예제 출력 3

1

この入力例は小課題 2, 3, 4, 5, 6, 7, 8 の制約を満たす.

예제 입력 4

1 15 1
1 15
1 1
...............

예제 출력 4

0

操作を 1 回も行わなくても,白いマスのみを通ってスタートからゴールへ移動する経路が存在する場合がある.

この入力例はすべての小課題の制約を満たす.

코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.