시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 (추가 시간 없음) | 512 MB | 326 | 107 | 82 | 34.025% |
당연한 이야기지만, 성공으로 가는 길이 항상 평탄하지만은 않다. 온갖 장애물이 가득하고, 장애물에 막혀서 주저앉을 수도 있다. 그래서 그 장애물을 폭파하려고 한다.
성공으로 가는 길은 N×M격자 위에 놓여 있다. 성공으로 가려면 맨 왼쪽 위 칸에서 시작하여 장애물이 없는 상하좌우로 인접한 칸을 밟으면서 맨 오른쪽 아래 칸에 도착해야 한다. 한 번의 폭파 작업으로 D×D 격자 내에 있는 모든 장애물을 없앨 수 있다. 하지만 세상에 공짜는 없는 법. 폭파 작업에도 큰 힘이 들기 때문에, 성공으로 가려면 최소 몇 번의 폭파 작업이 필요한지 알고 싶다.
첫 번째 줄에 격자의 행의 개수 N, 열의 개수 M, 폭파의 범위 D가 주어진다(D ≤ N, M ≤ 500, 1 ≤ D ≤ 100).
그 다음 N개의 줄에 격자의 각 행을 나타내는 길이 M의 문자열이 주어진다. “.”은 장애물이 없는 칸, “#”은 장애물이 있는 칸이다. 출발 지점과 성공에는 장애물이 없다.
첫 번째 줄에 폭파 작업의 최소 횟수를 출력한다.
8 9 3 .######## ##.....## ######.## ####...## ####.#### ######### ####.#### ########.
2
University > 전국 대학생 프로그래밍 대회 동아리 연합 > UCPC 2018 G번