페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
60000
ms
메모리 제한
1024
MB
당신은 아름다운 기하학적 그림을 판매하고 있다. 각 그림은 서로 겹치지 않는 격자 형태로 배열된 1x1 정사각형 타일로 이루어져 있다. 예를 들면 다음과 같다.
.##.. .#### .#### .##..
파란색 타일은 '#' 문자로, 흰색 타일은 '.' 문자로 나타낸다. 다른 색은 사용하지 않는다.
하지만 모두가 파란색을 좋아하는 것은 아니며, 일부 고객은 그림의 모든 파란색 타일을 빨간색 타일로 교체하기를 원한다. 안타깝게도 빨간색 타일은 더 큰 2x2 크기로만 나오기 때문에 이 작업은 까다롭다.
파란색 타일로 이루어진 임의의 2x2 정사각형을 빨간색 타일 하나로 덮은 뒤, 작업이 끝날 때까지 이를 반복할 수 있다. 빨간색 타일은 다른 빨간색 타일과 겹칠 수 없고, 흰색 타일을 덮을 수 없으며, 그림 밖으로 나갈 수도 없다. 예를 들어 앞의 그림에 다음과 같이 빨간색 타일을 추가할 수 있다.
./\.. .\//\ ./\\/ .\/..
여기서는 각 빨간색 타일의 왼쪽 위 모서리와 오른쪽 아래 모서리를 한 쌍의 '/' 문자로 나타내고, 나머지 두 모서리를 한 쌍의 '' 문자로 나타낸다.
파란색과 흰색으로 이루어진 그림이 주어질 때, 이 방법으로 빨간색과 흰색으로 이루어진 그림으로 바꿀 수 있는가?
메모리 제한: 1GB.
1 ≤ T ≤ 20. 1 ≤ R ≤ 6. 1 ≤ C ≤ 6. 시간 제한: 30초.
1 ≤ T ≤ 50. 1 ≤ R ≤ 50. 1 ≤ C ≤ 50. 시간 제한: 60초.
입력의 첫 번째 줄에는 테스트 케이스의 수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다.
각 테스트 케이스는 그림의 행 수와 열 수를 나타내는 R과 C가 포함된 한 줄로 시작한다. 다음 R개의 줄에는 각각 정확히 C개의 문자가 주어지며, 그림을 나타낸다. 위와 마찬가지로 '#' 문자는 파란색 타일을 나타내고, '.' 문자는 흰색 타일을 나타낸다.
각 테스트 케이스마다 먼저 "Case #x:"을 포함하는 한 줄을 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이다.
파란색 타일을 서로 겹치지 않는 빨간색 타일로 덮을 수 있다면, 결과로 만들어진 빨간색과 흰색 그림을 나타내는 R개의 줄을 출력하며, 각 줄에는 C개의 문자가 포함되어야 한다. 위와 마찬가지로 빨간색 타일은 '/' 및 '' 문자로 나타내고, 흰색 타일은 '.' 문자로 나타내야 한다. 가능한 해가 여러 개라면 그중 아무 것이나 출력해도 된다.
작업이 불가능하다면, 대신 "Impossible" 텍스트를 포함하는 한 줄만 출력한다.
3
2 3
###
###
1 1
.
4 5
.##..
.####
.####
.##..
Case #1:
Impossible
Case #2:
.
Case #3:
./\..
.\//\
./\\/
.\/..
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.