벽에 포탈을 쏘는 것은 시간이 들지 않고 두 포탈을 통해 이동하는 데 1이 들 때, 철수가 F에 도달하는 최소 시간을 구한다. 동시에 존재할 수 있는 포탈은 최대 두 개다.
어려움8그래프BFS최단 경로구현아직 제출이 없습니다시간 제한1초메모리 제한256 MB첼은 글라도스가 새로 낸 퍼즐을 풀어야 한다. 첼이 있는 방은 N행 M열 행렬로 나타낼 수 있고, 각 칸은 다음 넷 중 하나다.
#로 표시한다.C로 표시한다.F로 표시한다..로 표시한다.첼은 벽에 포탈을 만드는 포탈 건을 들고 있다. 한 번의 행동으로 다음 중 하나를 한다.
한 번 만든 포탈은 사라지기 전까지 그 자리에 남는다. 첼이 움직여도 포탈은 그대로다. 벽 한 칸에는 면이 넷 있으므로, 면이 서로 다르면 같은 벽 칸에 포탈 두 개가 함께 있을 수 있다.
첼이 퍼즐을 푸는 데, 즉 F 칸에 도착하는 데 걸리는 최소 시간을 구하라.
방의 가장자리는 항상 벽이고, C와 F는 각각 한 번씩만 나온다.
첫째 줄에 양의 정수 N과 M이 주어진다. (4≤N,M≤500)
다음 N개 줄에는 방의 모양을 나타내는 문자가 M개씩 주어진다.
퍼즐을 푸는 데 걸리는 최소 시간을 출력한다. 풀 수 없으면 nemoguce를 출력한다. 따옴표는 쓰지 않으며, 크로아티아어로 불가능을 뜻한다.
두 번째 예제는 행동 8번으로 풀 수 있다. 칸의 위치는 (행, 열)로 쓴다.
1, 2, 4, 6번 행동은 시간이 0이고 나머지 네 번은 각각 시간이 1이므로, 전체 시간은 4다.
