만드는 중입니다

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

국기 색칠하기

면접 대비

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

요약
글자 격자 A와 B가 주어질 때, 같은 색으로 이어진 영역을 다른 색으로 바꾸는 작업을 반복해 A를 B로 만들 수 있는지 판단합니다.
난이도

보통10점 중 5점

유형
행렬, BFS, 그래프
정답자
아직 제출이 없습니다

문제

세계의 여러 나라에는 자기 나라를 상징하는 국기가 있다. 그중에는 색만 다르고 모양은 비슷한 국기들이 있다. 국기는 NN행 MM열의 격자판으로 이루어져 있고, 격자판의 각 칸의 색은 A부터 Z까지의 영어 대문자로 나타낸다.

A[i][j]A[i][j]를 국기 AA의 ii행 jj열의 색이라고 하자. 두 국기 AA, BB가 주어졌을 때, 모든 ii, jj (1≤i≤N1 \le i \le N, 1≤j≤M1 \le j \le M)에 대해 A[i][j]A[i][j]와 B[i][j]B[i][j]가 같으면 두 국기는 같은 국기이다.

근호는 국기 AA와 BB를 가지고 있다. 근호는 국기 AA를 적절히 색칠해서 국기 BB와 똑같이 만들려고 한다. 국기를 색칠할 때는 다음 동작을 0회 이상 반복할 수 있다.

  • 격자판에서 칸 하나를 고르고, 그 칸과 같은 구역에 속한 모든 칸을 찾는다. 두 칸이 같은 색이고 상하좌우로 인접해 있으면 같은 구역에 속한다. 그다음 그 구역의 모든 칸을 원하는 다른 색으로 바꾼다. 이때 영어 대문자 외의 임의의 색을 새로 사용할 수 있다.

근호가 가진 국기 두 장이 주어졌을 때, 국기 AA를 적절히 색칠해 국기 BB와 똑같이 만들 수 있는지 판별하라. 국기를 돌리거나 뒤집을 수는 없다.

입력

첫 번째 줄에 국기의 행 개수 NN과 열 개수 MM이 공백으로 구분되어 정수로 주어진다. (3≤N,M≤503 \le N, M \le 50)

이후 NN개의 줄에는 국기 AA의 각 칸을 이루는 색이 줄마다 길이 MM의 문자열로 주어진다. ii번째 줄의 jj번째 문자가 A[i][j]A[i][j]를 나타낸다. 각 문자열은 영어 대문자로만 이루어져 있다.

그다음 NN개의 줄에는 국기 BB의 각 칸을 이루는 색이 위와 같은 형식으로 주어진다.

출력

국기 AA를 적절히 색칠해 국기 BB와 같게 만들 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.

예제2

  1. 예제 1

    입력
    3 6
    AABBCC
    AABBCC
    AABBCC
    DDEEFF
    DDEEFF
    DDEEFF
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    3 4
    AAAA
    BBBB
    CCCC
    DEEF
    DEEF
    DEEF
    
    예상 출력
    NO