밀크위드의 침공

면접 대비

시간 제한1초메모리 제한128 MB

요약
우유풀이 시작 칸에서 매주 여덟 방향 이웃으로 퍼질 때, 돌이 아닌 마지막 칸을 덮는 주차를 구한다.
난이도

쉬움10점 중 3점

유형
BFS, 그래프, 행렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

농부 존은 소들을 위해 목초지를 언제나 신선하고 맛있는 건강한 풀로 가득 채우려 애써 왔습니다. 하지만 침입성 잡초인 밀크위드가 농장 북서쪽에 자리를 잡으면서 이 싸움에서 지고 말았습니다.

목초지는 높이 YY (1≤Y≤1001 \le Y \le 100), 너비 XX (1≤X≤1001 \le X \le 100)인 직사각형 격자로 나뉘어 있습니다. 칸 (1,1)(1, 1)이 왼쪽 아래 모서리이므로, 격자는 일반적인 (x,y)(x, y) 좌표계를 사용합니다. 밀크위드는 칸 (Mx,My)(M_x, M_y)에서 자라기 시작합니다.

매주 밀크위드는 이미 차지한 모든 칸에서, 바위가 아닌 주변 칸(상하좌우 네 방향과 대각선 네 방향까지, 최대 여덟 칸) 전부로 퍼져 나갑니다. 어떤 칸에 퍼진 지 단 한 주가 지나면, 그 칸에서도 다시 바깥으로 퍼질 수 있습니다.

베시는 밀크위드가 목초지를 완전히 뒤덮기 전까지 최대한 오래 풀을 뜯고 싶어, 목초지가 얼마나 버틸 수 있을지 궁금해합니다. 밀크위드가 00주차에 칸 (Mx,My)(M_x, M_y)를 차지하고 있을 때, 목초지의 바위가 아닌 모든 칸을 다 뒤덮는 것은 몇 주차입니까? (이 문제의 모든 입력에서 밀크위드는 반드시 목초지 전체를 뒤덮게 됩니다.)

목초지는 풀을 .로, 바위를 *로 그립니다. 예를 들어 X=4X = 4, Y=3Y = 3일 때는 다음과 같습니다.

....
..*.
.**.

밀크위드가 왼쪽 아래 모서리(11행 11열)에서 시작하면 지도는 아래처럼 채워집니다. 다섯 개의 그림은 왼쪽부터 차례로 00주차부터 44주차까지이며, M은 밀크위드가 뒤덮은 칸을 나타냅니다.

....  ....  MMM.  MMMM  MMMM
..*.  MM*.  MM*.  MM*M  MM*M
M**.  M**.  M**.  M**.  M**M

44주가 지나면 밀크위드가 목초지 전체를 뒤덮습니다.

입력

  • 첫째 줄: 공백으로 구분된 네 정수 XX, YY, MxM_x, MyM_y.
  • 22번째 줄부터 Y+1Y+1번째 줄까지: 목초지 지도를 맨 위 행부터 맨 아래 행까지 순서대로 줍니다. 22번째 줄이 맨 위 행(행 YY), Y+1Y+1번째 줄이 맨 아래 행(행 11)이며, 각 줄은 XX개의 문자로 이루어지고 .은 풀, *은 바위를 뜻합니다. (1,1)(1, 1)이 왼쪽 아래 모서리이므로, kk번째 줄(2≤k≤Y+12 \le k \le Y+1)은 행 Y+2−kY+2-k를 나타냅니다.

출력

  • 첫째 줄: 밀크위드가 목초지에서 바위가 아닌 마지막 칸까지 뒤덮는 주차를 나타내는 정수 하나.

예제1

  1. 예제 1

    입력
    4 3 1 1
    ....
    ..*.
    .**.
    
    예상 출력
    4