문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

6117 : 불! (두 BFS)

•시간제한: 2.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

6117 : 불! (두 BFS)

시간 2.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

미로가 주어집니다. 미로에는 지수('J')와 불('F')이 존재합니다. 불은 매 초마다 상하좌우 인접한 빈칸으로 동시에 확산되며, 지수 역시 매 초마다 상하좌우로 1칸 이동합니다. 벽('#')은 지나갈 수 없습니다.
지수가 불에 탈 가능성이 있는 경로를 배제하고 미로의 가장자리 바깥으로 무사히 탈출할 수 있는 가장 빠른 시간을 구하시오.

입력 설명

첫째 줄에 행의 개수 R과 열의 개수 C (1 ≤ R, C ≤ 1,000)가 주어집니다.
둘째 줄부터 R개의 줄에 미로 정보가 한 줄씩 주어집니다.

출력 설명

지수가 탈출할 수 있는 최소 시간을 출력합니다. 탈출이 불가능하다면 IMPOSSIBLE을 출력합니다.

입력 예시
COPY
복사되었습니다!

4 4
####
#JF#
#..#
####

출력 예시
COPY
복사되었습니다!

IMPOSSIBLE

도움

불에 대한 BFS를 먼저 전역으로 돌려 각 칸에 불이 도달하는 시간을 계산해둔 뒤, 지수에 대한 BFS를 수행할 때 지수가 도달하는 시간이 그 칸의 불 도달 시간보다 엄격히 작은 경우에만 이동하도록 조건을 추가하십시오.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘