아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

불!

면접 대비

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

요약
벽과 시작 위치, 불타는 칸이 있는 격자에서 불이 매분 한 칸씩 번질 때 지훈이가 가장 빨리 격자 밖으로 나갈 수 있는 시각을 구한다.
난이도

보통10점 중 6점

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

문제

지훈이는 미로 안에 갇혀 있고, 미로에는 불이 번지고 있다. 지훈이가 불에 타기 전에 미로에서 탈출할 수 있는지, 탈출할 수 있다면 가장 빠른 탈출 시간이 언제인지 구하자.

지훈이와 불은 매 분마다 상하좌우로 인접한 칸으로 한 칸씩 이동한다(대각선으로는 이동하지 않는다). 불은 매 분마다 불이 붙어 있는 모든 칸에서 네 방향의 이웃 칸으로 번진다. 지훈이와 불은 모두 벽이 있는 칸을 지나갈 수 없다. 지훈이는 이미 불이 붙어 있거나 이번 분에 불이 옮겨붙는 칸으로는 이동할 수 없다.

지훈이는 미로의 가장자리에 있는 칸에서 미로 밖으로 나가 탈출한다. 지훈이가 어떤 분에 가장자리 칸에 있으면, 그다음 분에 미로 밖으로 나갈 수 있다. 지훈이는 0분에 시작 위치에 있다.

입력

첫째 줄에 공백으로 구분된 두 정수 RR과 CC가 주어진다 (1≤R,C≤10001 \le R, C \le 1000). RR은 미로의 행 개수, CC는 열 개수이다.

이어지는 RR개의 줄에 미로의 각 행이 주어진다. 각 문자의 의미는 다음과 같다.

  • #: 벽
  • .: 지나갈 수 있는 빈 칸
  • J: 지훈이의 시작 위치 (지나갈 수 있는 칸이다)
  • F: 불이 난 칸

J는 입력에 정확히 하나만 주어진다.

출력

지훈이가 불이 닿기 전에 미로를 탈출할 수 없으면 IMPOSSIBLE을 출력한다. 탈출할 수 있으면 가장 빠른 탈출 시간(지훈이가 미로 밖으로 나가는 분)을 출력한다.

예제3

  1. 예제 1

    입력
    4 4
    ####
    #JF#
    #..#
    #..#
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 3
    J..
    ...
    ..F
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3 3
    ###
    #J#
    ###
    
    예상 출력
    IMPOSSIBLE