문제
迷路を解くのが好きな K 理事長は,迷路になりそうなマス目を見つけた.マス目は縦 行,横 列の長方形の形をしており,各マスは白または黒で塗られている.上から 行目 (),左から 列目 () のマスをマス と呼ぶことにする.
K 理事長は,マス目の白いマスは通れるマス,黒いマスは通れないマスとして,迷路を解くことにした.具体的には,以下のようにして迷路を解く.
- 白いマスの中からスタートのマス とゴールのマス を選ぶ.
- 上下左右に隣接する白いマスに移動することを繰り返して,スタートのマスからゴールのマスへ移動する経路を見つける.
K 理事長はスタートのマスとゴールのマスを決めたが,マス目の色の塗られ方によっては,白いマスのみを通ってスタートからゴールへ移動する経路が存在しない場合があることに気がついた.そこで,K 理事長の持っている マスの大きさのハンコを用いて以下の操作を繰り返すことで,スタートからゴールへ移動する経路が存在するようにしたい.
操作 マス目から マスの正方形の領域を選び,この領域に含まれるマスをすべて白にする.より厳密には,, を満たす整数 を選び,, を満たすすべての整数の組 に対して,マス を白にする.
ハンコを使うと手が汚れる可能性があるため,操作回数はできるだけ少なくしたい.マス目の塗られ方とハンコの大きさ,スタートのマスとゴールのマスが与えられたとき,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようにするための,操作回数の最小値を求めるプログラムを作成せよ.
입력
入力は以下の形式で標準入力から与えられる.
R C N
S_r S_c
G_r G_c
A_1
A_2
...
A_R
() は . または # からなる長さ の文字列である. の 文字目 () はマス の色を表し,. はそのマスの色が白であることを,# はそのマスの色が黒であることを表す.
출력
標準出力に,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようにするための操作回数の最小値を 1 行で出力せよ.
제한
- .
- .
- .
- .
- .
- .
- .
- () は
.または#からなる長さ の文字列である. - マス の色は白である.
- マス の色は白である.
- は整数である.
서브태스크
- ( 점) ,.
- ( 점) .
- ( 점) 答えは 以下である,.
- ( 점) .
- ( 점) .
- ( 점) .
- ( 점) .
- ( 점) 追加の制約はない.
예제 입력 1
2 4 2
1 1
2 4
.###
###.
예제 출력 1
1
を選んで 1 回操作を行い,マス を白にすると,白いマスのみを通ってスタートからゴールへ移動する経路が存在するようになる.例えば,経路 はその 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 回も行わなくても,白いマスのみを通ってスタートからゴールへ移動する経路が存在する場合がある.
この入力例はすべての小課題の制約を満たす.
코드를 제출하려면 로그인이 필요합니다.
로그인