포스터 만들기

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

요약
테두리가 파란색으로 고정된 격자가 주어질 때, 흰색 문양 2개, 노란색 1개, 파란색 1개를 이루는 좌우 대칭 색칠이 가능한지 판정한다.
난이도

보통10점 중 7점

유형
구현, 완전 탐색, 시뮬레이션
정답자
아직 제출이 없습니다

문제

대한민국을 지키는 가장 높은 힘! 대한민국 공군의 마크는 현재 다음과 같다.

이 사진을 본 운영진은 자신만의 마크를 보라매컵 포스터에 포함하기로 하였다. 공군 마크를 분석한 결과, 다음과 같은 디자인을 협의할 수 있었다.

  1. 마크는 세로 YY칸, 가로 XX칸의 크기이며, 좌우 대칭이어야 한다.
  2. 각 칸은 흰색, 노란색, 파란색 중 하나로 색칠해야 하며, 특히 테두리는 파란색으로 칠해야 한다.
  3. 어떤 색의 문양이란, 해당 색으로 색칠된 인접한 칸들의 묶음이다. 두 칸이 변을 공유하는 경우에 두 칸은 인접한다고 정의한다.
  4. 마크 안엔 정확히 2개의 흰색 문양, 1개의 노란색 문양, 그리고 1개의 파란색 문양이 있어야 한다.
  5. 두 흰색 문양은 중앙을 기준으로 서로 좌우 대칭 관계여야 한다.
  6. 모든 흰색 문양은 노란색 문양과 한 칸 이상 변을 공유해야 한다.

올바른 마크의 예시는 다음과 같다.

올바르지 않은 마크의 예시와 관련 규칙은 다음과 같다.

그런데 인쇄를 맡기기 직전에서야 인쇄용지의 일부가 이미 파란색으로 색칠되어 있음을 알게 되었다! 어쩔 수 없이 운영진은 인쇄용지의 상태에 맞춰서, 이미 색칠된 부분을 파란색으로 유지하면서 위의 조건을 여전히 만족하는 새로운 마크를 만들고자 한다.

용지의 크기 및 상태가 주어졌을 때, 새로운 마크를 만들 수 있는지 확인해 보자.

입력

첫 번째 줄에 세로 길이 YY와 가로 길이 XX가 공백으로 구분되어 정수로 주어진다.

이후 YY줄에 걸쳐 인쇄용지의 상태가 주어진다.

각 줄은 XX글자의 B 또는 X가 주어지며, B로 색칠된 칸은 결과물에서도 파란색으로 색칠되어야 한다.

단, 마크의 테두리는 언제나 B로 주어진다. 이는 위의 2번 규칙을 반영한 내용이다.

출력

첫 번째 줄에 모든 규칙을 만족하는 마크가 있다면 YES, 없다면 NO을 출력한다.

이후 YES를 출력했다면 YY줄에 걸쳐 가능한 마크 중 하나를 출력한다.

흰색으로 칠한 칸은 W, 노란색으로 칠한 칸은 Y, 파란색으로 칠한 칸은 B로 출력하라.

제한

  • 3≤Y≤1003 \le Y \le 100
  • 5≤X≤1,0005 \le X \le 1\\,000

예제2

  1. 예제 1

    입력
    8 16
    BBBBBBBBBBBBBBBB
    BXXXXXXXXXXXXXXB
    BXXXXXXXXXXXXXXB
    BXXXXXXXXXXXXXXB
    BXXXXXXXXXXXXXXB
    BXXXXXXXXXXXXXXB
    BXXXXXXXXXXXXXXB
    BBBBBBBBBBBBBBBB
    
    예상 출력
    YES
    BBBBBBBBBBBBBBBB
    BBBBBBBYYBBBBBBB
    BWWWBYYYYYYBWWWB
    BBWWWWYYYYWWWWBB
    BBBWWWWYYWWWWBBB
    BBBBBYYYYYYBBBBB
    BBBBBBYYYYBBBBBB
    BBBBBBBBBBBBBBBB
    
  2. 예제 2

    입력
    3 5
    BBBBB
    BXBXB
    BBBBB
    
    예상 출력
    NO