국기 색칠하기
면접 대비시간 제한1초메모리 제한1024 MB
글자 격자 A와 B가 주어질 때, 같은 색으로 이어진 영역을 다른 색으로 바꾸는 작업을 반복해 A를 B로 만들 수 있는지 판단합니다.
문제
세계의 여러 나라에는 자기 나라를 상징하는 국기가 있다. 그중에는 색만 다르고 모양은 비슷한 국기들이 있다. 국기는 행 열의 격자판으로 이루어져 있고, 격자판의 각 칸의 색은 A부터 Z까지의 영어 대문자로 나타낸다.
를 국기 의 행 열의 색이라고 하자. 두 국기 , 가 주어졌을 때, 모든 , (, )에 대해 와 가 같으면 두 국기는 같은 국기이다.
근호는 국기 와 를 가지고 있다. 근호는 국기 를 적절히 색칠해서 국기 와 똑같이 만들려고 한다. 국기를 색칠할 때는 다음 동작을 0회 이상 반복할 수 있다.
- 격자판에서 칸 하나를 고르고, 그 칸과 같은 구역에 속한 모든 칸을 찾는다. 두 칸이 같은 색이고 상하좌우로 인접해 있으면 같은 구역에 속한다. 그다음 그 구역의 모든 칸을 원하는 다른 색으로 바꾼다. 이때 영어 대문자 외의 임의의 색을 새로 사용할 수 있다.
근호가 가진 국기 두 장이 주어졌을 때, 국기 를 적절히 색칠해 국기 와 똑같이 만들 수 있는지 판별하라. 국기를 돌리거나 뒤집을 수는 없다.
입력
첫 번째 줄에 국기의 행 개수 과 열 개수 이 공백으로 구분되어 정수로 주어진다. ()
이후 개의 줄에는 국기 의 각 칸을 이루는 색이 줄마다 길이 의 문자열로 주어진다. 번째 줄의 번째 문자가 를 나타낸다. 각 문자열은 영어 대문자로만 이루어져 있다.
그다음 개의 줄에는 국기 의 각 칸을 이루는 색이 위와 같은 형식으로 주어진다.
출력
국기 를 적절히 색칠해 국기 와 같게 만들 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.