N×M 격자에서 왼쪽 위에서 오른쪽 아래로 이동할 수 있도록 D×D 폭파를 최소 몇 번 해야 하는지 구한다.
어려움8BFS이분 탐색누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MB
문제 설명
예제1
문제
당연한 이야기지만, 성공으로 가는 길이 항상 평탄하지만은 않다. 온갖 장애물이 가득하고, 장애물에 막혀서 주저앉을 수도 있다. 그래서 그 장애물을 폭파하려고 한다.
성공으로 가는 길은 N×M격자 위에 놓여 있다. 성공으로 가려면 맨 왼쪽 위 칸에서 시작하여 장애물이 없는 상하좌우로 인접한 칸을 밟으면서 맨 오른쪽 아래 칸에 도착해야 한다. 한 번의 폭파 작업으로 D×D 격자 내에 있는 모든 장애물을 없앨 수 있다. 하지만 세상에 공짜는 없는 법. 폭파 작업에도 큰 힘이 들기 때문에, 성공으로 가려면 최소 몇 번의 폭파 작업이 필요한지 알고 싶다.
입력
첫 번째 줄에 격자의 행의 개수 N, 열의 개수 M, 폭파의 범위 D가 주어진다(D ≤ N, M ≤ 500, 1 ≤ D ≤ 100).
그 다음 N개의 줄에 격자의 각 행을 나타내는 길이 M의 문자열이 주어진다. “.”은 장애물이 없는 칸, “#”은 장애물이 있는 칸이다. 출발 지점과 성공에는 장애물이 없다.