기울임 타일 퍼즐
시간 제한1초메모리 제한1024 MB
n×m 격자의 흰색과 검은색 타일을 k번 기울이는 과정을 시뮬레이션하고 마지막 상태를 출력합니다.
문제
Bajtazar는 칸으로 이루어진 직사각형 모양의 퍼즐을 가지고 논다. 각 칸은 비어 있거나, 흰색 또는 검은색 타일을 하나 가진다.
한 번의 움직임에서 퍼즐을 직사각형의 변과 평행한 네 방향 중 하나로 기울일 수 있다. 그러면 모든 타일이 그 방향으로 끝까지 미끄러진다. 타일은 틀 밖으로 나가지 않고, 서로 겹치지도 않는다.
Bajtazar가 수행한 움직임의 순서가 주어진다. 마지막 움직임을 수행한 뒤의 퍼즐 상태를 출력하라.
입력
첫 줄에 높이 과 너비 이 주어진다 (). 다음 줄에는 초기 상태가 위에서 아래로, 각 줄은 왼쪽에서 오른쪽으로 개의 문자로 주어진다. 각 문자는 빈 칸을 뜻하는 '.', 흰색 타일 'B', 검은색 타일 'C' 중 하나다.
다음 줄에는 Bajtazar가 수행한 움직임의 횟수 ()가 주어진다. 마지막 줄에는 이 움직임을 나타내는 길이 의 문자열이 주어진다. 'G'는 위, 'D'는 아래, 'L'은 왼쪽, 'P'는 오른쪽 움직임이다.
출력
최종 상태를 초기 상태와 같은 형식으로 출력한다. 줄을 출력하며, 각 줄은 '.', 'B', 'C'로 이루어진 개의 문자이다.
힌트
첫 번째 움직임 'G'로 모든 타일이 위로 미끄러져 상태는 다음과 같아진다:
.BCC.
...B.
.....
.....
두 번째 움직임 'L'로 타일이 왼쪽으로 미끄러진다:
BCC..
B....
.....
.....
세 번째 움직임 'P'로 타일이 오른쪽으로 미끄러지면서 최종 상태가 된다.