아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

UFO 비행장 (UFO) 5

시간 제한1초메모리 제한1024 MB

요약
격자 안의 착륙 가능한 칸에 고정된 모양의 UFO를 최대한 많이 배치하되, 서로 변을 맞닿지 않아야 한다.
난이도

어려움10점 중 8점

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

문제

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 공원의 남북 방향 크기(미터)

힌트

이 출력 예는 UFO 11대를 착륙시킬 수 있는 계획서이다.

예제1

  1. 예제 1

    입력
    4 3
    O..O
    OOOO
    .O..
    20 10
    ....................
    .w......w.......ww..
    ....ww......w.w.....
    .w.....w............
    ...w......w.........
    w................ww.
    ....w...............
    .w.....w........w.ww
    ............w.......
    ....w..............w
    
    예상 출력
    ..O..O......O..O....
    .wOOOO.Ow.O.OOOOww..
    ...Oww.OOOO.wOw.O..O
    .w.....wO..O..O.OOOO
    .O.wO.O..OwOOOO..O..
    wOOOO.OOOO..O...OwwO
    ..O.w..O..O..O..OOOO
    Ow.O.O.wO.OOOO..wOww
    OOOO.OOOO..Ow.......
    .O..w.O............w