만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정사각형 타일

면접 대비

시간 제한5초메모리 제한512 MB

요약
격자의 파란 칸을 겹치지 않는 2x2 타일로 빈틈없이 덮을 수 있는지 판정하고 결과를 출력합니다.
난이도

쉬움10점 중 3점

유형
그리디, 행렬, 구현
정답자
아직 제출이 없습니다

문제

기하 무늬 그림을 판다. 그림 하나는 1x1 정사각형 타일을 겹치지 않게 격자로 붙여서 만든다. 예를 들면 이런 그림이다.

.##..
.####
.####
.##..

#는 파란 타일, .은 흰 타일이다. 다른 색은 쓰지 않는다.

파란색을 싫어하는 손님은 그림의 파란 타일을 모두 빨간 타일로 바꿔 달라고 한다. 그런데 빨간 타일은 더 큰 2x2 크기로만 나와서 작업이 까다롭다.

파란 타일로만 채워진 2x2 정사각형을 빨간 타일 하나로 덮을 수 있고, 끝날 때까지 이 작업을 반복한다. 빨간 타일은 다른 빨간 타일과 겹칠 수 없고, 흰 타일을 덮을 수 없고, 그림 밖으로 나갈 수 없다. 위 그림에는 다음과 같이 빨간 타일을 놓을 수 있다.

./\..
.\//\
./\\/
.\/..

빨간 타일 하나는 왼쪽 위와 오른쪽 아래 칸에 /, 나머지 두 칸에 \를 써서 나타낸다.

파란색과 흰색으로 이루어진 그림이 주어질 때, 이 방법으로 빨간색과 흰색 그림으로 바꿀 수 있는지 판정하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 그림의 행 개수 RR과 열 개수 CC가 주어진다. 다음 RR개의 줄에는 각각 정확히 CC개의 문자가 주어져 그림을 나타낸다. #는 파란 타일, .은 흰 타일이다.

제한

  • 1≤T≤201 \le T \le 20
  • 1≤R≤61 \le R \le 6
  • 1≤C≤61 \le C \le 6

출력

각 테스트 케이스마다 먼저 Case #x: 한 줄을 출력한다. x는 1부터 시작하는 케이스 번호다.

파란 타일을 겹치지 않는 빨간 타일로 모두 덮을 수 있으면, 정확히 CC개의 문자로 이루어진 줄 RR개를 출력해 완성된 빨간색과 흰색 그림을 나타낸다. 빨간 타일은 위와 같이 /와 \로, 흰 타일은 .으로 나타낸다. 덮을 수 있는 그림의 덮는 방법은 하나뿐이므로 답도 유일하다.

덮을 수 없으면 대신 Impossible 한 줄을 출력한다.

예제2

  1. 예제 1

    입력
    3
    2 3
    ###
    ###
    1 1
    .
    4 5
    .##..
    .####
    .####
    .##..
    
    예상 출력
    Case #1:
    Impossible
    Case #2:
    .
    Case #3:
    ./\..
    .\//\
    ./\\/
    .\/..
    
  2. 예제 2

    입력
    4
    1 1
    #
    1 6
    ######
    6 1
    #
    #
    #
    #
    #
    #
    2 2
    ##
    ##
    
    예상 출력
    Case #1:
    Impossible
    Case #2:
    Impossible
    Case #3:
    Impossible
    Case #4:
    /\
    \/