UFO 비행장 (UFO) 3
시간 제한1초메모리 제한1024 MB
B x D 크기의 UFO 모양을 W x H 격자 위에 최대한 많이 배치하되, 각 UFO는 착륙 가능한 칸만 차지하고 서로 변을 공유하지 않아야 한다.
문제
IOI별의 우주인들은 일본에 있는 JOI 공원(일반인에게는 존재가 비밀로 유지되고 있다)에 UFO 비행장을 지을 계획을 세우고 있다. IOI별의 우주인들은 JOI 공원을 조사하여 UFO가 착륙할 수 있는 장소를 나타낸 지도를 만들었다.
JOI 공원은 동서 W 미터, 남북 H 미터의 직사각형이며, 1 미터 정사각형 구획으로 나뉘어 있다. 구획은 모두 W × H 개이고, 서쪽에서 x번째 열, 북쪽에서 y번째 행의 구획을 (x, y)로 나타낸다. 북서쪽 모서리의 구획은 (1, 1)이고, 남동쪽 모서리의 구획은 (W, H)이다. 각 구획은 "착륙 가능" 또는 "착륙 불가능" 중 하나이며, "착륙 가능"은 ".", "착륙 불가능"은 "w"로 나타낸다.
IOI별의 우주인들이 만드는 UFO는 너비 B 미터, 깊이 D 미터 안에 들어간다. 이 UFO는 규격상 설계도에서의 위아래좌우가 각각 UFO에서 북, 남, 서, 동 방향이 되도록, 또한 설계도의 왼쪽 위 모서리가 JOI 공원의 어떤 구획의 왼쪽 위와 일치하도록 착륙해야 한다. UFO의 설계도는 D행 B열의 격자로 이루어져 있다. 칸은 모두 B × D 개이고, 왼쪽에서 i번째 열, 위에서 j번째 행의 칸을 (i, j)로 나타낸다. 왼쪽 위 칸은 (1, 1)이고, 오른쪽 아래 칸은 (B, D)이다. 칸 (i, j)는 UFO의 서쪽 끝에서 i − 1 미터~i 미터, 북쪽 끝에서 j − 1 미터~j 미터의 정사각형 범위에 UFO의 일부가 포함되는지 여부를 나타낸다. 각 칸은 UFO의 일부가 "포함됨" 또는 "포함되지 않음" 중 하나이며, 포함되는 경우는 "O"(대문자 오), 포함되지 않는 경우는 "."로 나타낸다.
UFO 한 개가 착륙할 때, 설계도상의 칸에서 UFO에 "포함됨"인 모든 위치는 착륙 시 "착륙 가능"한 구획에 포함되어야 한다. 또한 여러 UFO가 착륙할 때는, 어떤 UFO의 설계도상의 칸에서 "포함됨"인 모든 위치는 다른 UFO의 설계도상의 칸에서 "포함됨"인 어떤 위치와도 변을 공유할 수 없다. 다만, UFO는 꼭짓점을 공유하는 위치에 착륙할 수 있다.
당신은 우연히도 IOI별의 친선 대사로 선출되었다. 따라서 당신에게는 가능한 한 많은 UFO의 착륙이 가능한 비행장을 만드는 계획서를 만들어 달라고 요청한다.
JOI 공원에 지을 UFO 비행장의 계획서를 작성하라. 더 많은 개수의 UFO를 착륙시키는 계획서를 만들수록 당신은 더 높은 점수를 얻는다. 계획서는 JOI 공원의 지도 위에 착륙한 UFO를 덧그린 것이며, JOI 공원의 "착륙 가능"한 구획 중 착륙한 UFO가 포함되는 구획을 "O"(대문자 오), 착륙한 UFO가 포함되지 않는 구획을 "."로 나타내고, "착륙 불가능"한 구획은 "w"로 나타낸다.
각 입력 데이터에 대한 출력을 제출하라. 그때 출력의 섹션에서 지정된 형식과 일치하는지만 검사한다.
입력
입력 파일은 다음 형식으로 주어진다.
- 1번째 줄에는 정수 B, D가 공백을 구분으로 쓰여 있으며, UFO의 너비가 B 미터, 깊이가 D 미터임을 나타낸다.
- 이어지는 D줄에는 UFO의 설계도 정보가 쓰여 있다. j + 1번째 줄 (1 ≤ j ≤ D)에는 B 문자로 이루어진 문자열이 쓰여 있고, i번째 문자 (1 ≤ i ≤ B)에는 설계도의 칸 (i, j)를 나타내는 "O" 또는 "." 문자가 쓰여 있다.
- D+2번째 줄에는 정수 W, H가 공백을 구분으로 쓰여 있으며, JOI 공원의 동서 방향 크기가 W 미터, 남북 방향 크기가 H 미터임을 나타낸다.
- 이어지는 H줄에는 JOI 공원의 지도 정보가 쓰여 있다. y + D + 2번째 줄 (1 ≤ y ≤ H)에는 W 문자로 이루어진 문자열이 쓰여 있고, x번째 문자 (1 ≤ x ≤ W)에는 공원의 구획 (x, y)를 나타내는 "." 또는 "w" 문자가 쓰여 있다.
출력
출력의 y번째 줄 (1 ≤ y ≤ H)에는 공원의 북쪽에서 y번째 행의 상태를 나타내는 W 문자로 이루어진 문자열을 써라. y번째 줄 (1 ≤ y ≤ H)의 x번째 문자 (1 ≤ x ≤ W)는 구획 (x, y)의 상태를 나타내는 "O" 또는 "." 또는 "w" 중 하나의 문자이다.
제한
- 1 ≤ B ≤ 5 UFO의 너비 (미터)
- 1 ≤ D ≤ 5 UFO의 깊이 (미터)
- 1 ≤ W ≤ 200 JOI 공원의 동서 방향 크기 (미터)
- 1 ≤ H ≤ 200 JOI 공원의 남북 방향 크기 (미터)
힌트
이 출력 예는 11개의 UFO를 착륙시킬 수 있는 계획서이다.