격자의 파란 칸을 겹치지 않는 2x2 타일로 빈틈없이 덮을 수 있는지 판정하고 결과를 출력합니다.
쉬움3그리디행렬구현면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB기하 무늬 그림을 판다. 그림 하나는 1x1 정사각형 타일을 겹치지 않게 격자로 붙여서 만든다. 예를 들면 이런 그림이다.
.##..
.####
.####
.##..
#는 파란 타일, .은 흰 타일이다. 다른 색은 쓰지 않는다.
파란색을 싫어하는 손님은 그림의 파란 타일을 모두 빨간 타일로 바꿔 달라고 한다. 그런데 빨간 타일은 더 큰 2x2 크기로만 나와서 작업이 까다롭다.
파란 타일로만 채워진 2x2 정사각형을 빨간 타일 하나로 덮을 수 있고, 끝날 때까지 이 작업을 반복한다. 빨간 타일은 다른 빨간 타일과 겹칠 수 없고, 흰 타일을 덮을 수 없고, 그림 밖으로 나갈 수 없다. 위 그림에는 다음과 같이 빨간 타일을 놓을 수 있다.
./\..
.\//\
./\\/
.\/..
빨간 타일 하나는 왼쪽 위와 오른쪽 아래 칸에 /, 나머지 두 칸에 \를 써서 나타낸다.
파란색과 흰색으로 이루어진 그림이 주어질 때, 이 방법으로 빨간색과 흰색 그림으로 바꿀 수 있는지 판정하라.
첫 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 그림의 행 개수 R과 열 개수 C가 주어진다. 다음 R개의 줄에는 각각 정확히 C개의 문자가 주어져 그림을 나타낸다. #는 파란 타일, .은 흰 타일이다.
각 테스트 케이스마다 먼저 Case #x: 한 줄을 출력한다. x는 1부터 시작하는 케이스 번호다.
파란 타일을 겹치지 않는 빨간 타일로 모두 덮을 수 있으면, 정확히 C개의 문자로 이루어진 줄 R개를 출력해 완성된 빨간색과 흰색 그림을 나타낸다. 빨간 타일은 위와 같이 /와 \로, 흰 타일은 .으로 나타낸다. 덮을 수 있는 그림의 덮는 방법은 하나뿐이므로 답도 유일하다.
덮을 수 없으면 대신 Impossible 한 줄을 출력한다.