2x2 기둥이 드문드문 놓인 격자에서 정해진 국소 규칙에 따라 모든 빈 칸을 한 번씩 지나는 유일한 해밀턴 회로를 구성한다.
어려움8구현시뮬레이션그래프기하아직 제출이 없습니다시간 제한2초메모리 제한512 MB바이테아자르는 큰 창고의 관리 책임자다. 혹독한 겨울에 대비해 창고 바닥 아래에 난방 배관을 설치하기로 했다.
창고 평면도는 가로와 세로가 모두 짝수인 n × m 크기의 직사각형이고, 한 변의 길이가 1인 정사각형 칸으로 나뉜다. 대부분의 칸은 창고 공간이지만, 일부 칸은 건물 구조를 받치는 거대한 기둥이 차지한다. 각 기둥은 평면도에서 칸 네 개로 이루어진 2 × 2 정사각형을 차지한다. 기둥은 빽빽하게 놓이지 않아서, 어느 두 기둥의 중심도 유클리드 거리로 6 이상 떨어져 있다. 또한 각 기둥의 중심은 창고의 바깥 벽 각각에서 3 이상 떨어져 있다.
난방은 창고 바닥 아래에 설치하는 배관 하나로 한다. 배관은 기둥이 차지한 칸을 제외한 모든 칸의 중심을 지나야 한다. 배관의 각 구간은 창고 벽 중 하나와 평행해야 하고, 방향은 칸의 중심에서만 바꿀 수 있다. 배관은 시작한 곳에서 끝나야 한다. 그 지점에서 식은 물을 밖으로 내보내고 뜨거운 물을 배관에 넣는다.
바이테아자르는 창고 안의 배관 경로를 계획해 달라고 부탁했다. 이를 돕기 위해 평면도에 직교 좌표계를 도입했다. x좌표는 구간 [0, n]에, y좌표는 구간 [0, m]에 속한다. 모든 칸의 중심 좌표는 k ∈ ℕ에 대해 k + 1/2 꼴의 수다.
첫째 줄에 창고의 크기와 기둥의 수를 나타내는 세 정수 n, m, f가 주어진다 (1 ≤ n, m ≤ 1,000이고 n과 m은 짝수). 다음 f개 줄에는 i번째 기둥의 중심 좌표를 나타내는 두 정수 xi, yi가 주어진다 (0 ≤ xi ≤ n, 0 ≤ yi ≤ m).
첫째 줄에 바이테아자르의 요구대로 바닥 난방을 설치할 수 있으면 TAK(예), 없으면 NIE(아니오)를 출력한다. 답이 TAK이면 둘째 줄에 배관 경로를 nm - 4f개의 글자로 이루어진 문자열로 출력한다. 배관은 좌표가 (1/2, 1/2)인 점에서 시작한다. 벡터 [0, 1]만큼의 이동은 G, [0, -1]은 D, [1, 0]은 P, [-1, 0]은 L로 표기한다.
올바른 경로는 여러 개일 수 있으므로, 아래 규칙으로 정해지는 경로 하나만 정답으로 인정한다. 중심이 (x + 1/2, y + 1/2)인 칸을 칸 (x, y)라 한다 (0 ≤ x < n, 0 ≤ y < m). 중심이 (a, b)인 기둥은 칸 (a-1, b-1), (a, b-1), (a-1, b), (a, b)를 차지한다. 기둥이 차지하지 않은 칸을 빈 칸이라 한다.
선택된 간선은 모든 빈 칸을 정확히 한 번씩 지나는 닫힌 경로 하나를 이룬다. 이 경로를 칸 (0, 0)에서 시작해 첫 이동이 P가 되는 방향으로 한 바퀴 돌며 출력한다.
예제 출력은 다음 그림에 해당한다.
