각 방이 열 문을 정해 정확히 K명의 참가자가 격자 밖으로 나가게 하고 그 배치도를 출력합니다.
보통4그래프시뮬레이션구현아직 제출이 없습니다시간 제한20초메모리 제한1024 MBR행 C열의 직사각형 방 격자로 탈출 게임을 만든다. 각 방에는 북쪽, 남쪽, 동쪽, 서쪽으로 문이 하나씩 있다. 격자 경계에 있는 문은 밖으로 통하고, 나머지 문은 이웃한 방으로 통한다.
참가자는 정확히 R×C명이고 방마다 한 명씩 들어간다. 게임이 시작되면 모든 문이 잠기고, 방마다 네 문 중 하나만 안쪽에서 열리도록 장치가 고정된다. 한 방에서 열리는 문은 게임이 끝날 때까지 그대로다. 두 방을 잇는 문이 한쪽에서는 열리고 반대쪽에서는 잠겨 있을 수도 있다.
참가자는 각자 따로 움직인다. 자기가 연 문으로만 지나갈 수 있고, 지나간 문은 뒤에서 닫힌다. 밖으로 통하는 문을 지나가면 탈출에 성공하고, R×C번 움직여도 격자를 벗어나지 못하면 실패한다.
정확히 K명이 탈출하도록 방마다 열리는 문을 정하거나, 그렇게 정하는 방법이 없음을 판정한다.
첫 줄에 테스트 케이스 수 T가 주어진다. 이어지는 T개의 줄에 각각 세 정수 R, C, K가 주어진다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 정확히 K명이 탈출하는 배치가 없으면 IMPOSSIBLE, 있으면 POSSIBLE이다. POSSIBLE을 출력한 경우 이어서 C글자로 이루어진 줄을 R개 출력한다. 그중 i번째 줄의 j번째 글자는 i행 j열 방에서 열리는 문이 북쪽이면 N, 남쪽이면 S, 동쪽이면 E, 서쪽이면 W이다.
정확히 K명이 탈출하는 배치는 여러 개일 수 있으므로, 다음 규칙으로 만든 배치를 출력한다. M=R×C−K로 둔다.
탈출하지 못하는 참가자는 순환에 갇힌 것이다. 어느 방에서 출발하든 열리는 문을 따라가는 경로는 하나뿐이므로, 참가자는 밖으로 나가거나 같은 방들을 영원히 돈다. 그래서 R×C번만 움직여 보면 모든 참가자의 결과가 정해진다.
방이 하나뿐인 격자에서는 어느 문이 열리든 밖으로 통하므로 그 참가자는 반드시 탈출한다.