경계선 그리기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

닫힌 경로를 따라 비트맵 위에 경계선을 그리는 프로그램을 작성하세요. 아래 그림을 참고하세요.

경로는 닫혀 있으며, 격자의 칸과 칸 사이, 즉 격자선을 따라 진행합니다. 경로는 반시계 방향으로 진행하므로, 경로를 따라가는 것을 "앞으로 나아가는 것"이라고 생각하면 경계선 픽셀은 항상 경로의 "오른쪽"에 놓입니다. 비트맵은 항상 가로 32칸, 세로 32칸의 영역을 덮으며, 왼쪽 아래 모서리가 (0, 0)에 있습니다. 경로는 비트맵을 감싸는 바깥 사각형에 절대 닿지 않으며, 자기 자신과 닿거나 교차하지도 않는다고 가정해도 됩니다.

어떤 칸(비트)은 경로가 둘러싼 영역의 바깥쪽에 있으면서 그 칸의 변 중 적어도 하나가 경로 위에 놓일 때 칠해집니다. 반대로 칸의 꼭짓점 하나만 경로에 닿는 경우에는 칠해지지 않습니다. 그림의 볼록한 모서리를 보면 이 규칙을 이해할 수 있습니다.

입력

입력의 첫 줄에는 테스트 케이스의 개수가 주어집니다.

각 테스트 케이스는 두 줄로 이루어집니다.

  • 첫 줄에는 경로의 시작점을 나타내는 두 정수 xy가 주어집니다.
  • 둘째 줄에는 경로를 나타내는 길이가 일정하지 않은 문자열이 주어집니다. 각 문자는 격자를 따라 한 칸 이동함을 뜻합니다: W(서쪽), E(동쪽), N(북쪽), S(남쪽). 문자 .는 경로의 끝(이동 없음)을 나타내며 줄의 맨 끝에 옵니다.

출력

각 테스트 케이스마다 먼저 Bitmap #k 형식의 줄을 출력합니다. 여기서 k는 테스트 케이스 번호이며 1부터 시작합니다.

그다음 비트맵을 위에서 아래로 한 행씩 출력합니다. 각 행에서는 왼쪽에서 오른쪽으로 각 열마다 한 문자씩 출력하는데, 칠해진 비트는 대문자 X로, 칠해지지 않은 비트는 마침표 .로 표시합니다. 비트맵은 32행 32열입니다.

서로 이웃한 두 비트맵 사이에는 빈 줄을 하나 출력합니다.