두 이진 이미지가 같은 문자를 나타내는지 판정한다. 연결 요소의 개수와 각 요소 사이의 둘러쌈 관계를 비교해 위상적으로 같은 구조인지 확인한다.
보통7그래프BFSDFS구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB정체를 알 수 없는 조직이 남긴 이미지 데이터가 발견되었다. 당신은 이 데이터를 분석해야 한다. 조직원은 스스로 만든 문자를 썼고, 이진 이미지 한 장에는 흰 종이에 검은 잉크로 쓴 문자 하나가 들어 있다.
겉모습이 다른 이미지가 같은 문자를 나타내는 경우가 많다. 두 이미지가 같은 문자를 나타내는지는 연결 성분 사이의 둘러싸기 관계로 판정한다. 정의는 다음과 같다. 주어진 이미지의 바깥은 모두 흰 픽셀로 채워져 있다고 가정한다.
![]() | ![]() |
|---|---|
| 연결됨 | 연결되지 않음 |
흰 픽셀의 연결성.
![]() | ![]() |
|---|---|
| 연결됨 | 연결됨 |
검은 픽셀의 연결성.
이미지의 연결 성분 하나를 C1, 같은 이미지에서 색이 반대인 다른 연결 성분을 C2라고 하자. C1에도 C2에도 속하지 않는 픽셀을 모두 C2의 색으로 바꾼 이미지를 생각한다. C1과 C2가 둘 다 배경 성분이 아니면 이미지 바깥의 픽셀도 C2의 색으로 바꾼다. 이렇게 바꾼 이미지에서 C2의 픽셀이 배경 성분에 하나도 속하지 않으면, 원래 이미지에서 C1이 C2를 둘러싼다고 한다.

다음 두 조건을 모두 만족하면 두 이미지는 같은 문자를 나타낸다.
아래 그림에 있는 두 이미지의 연결 성분은 다음 둘러싸기 관계를 이룬다.
전단사 함수를 f(Ci)=Ci′로 잡으면 위 두 조건을 모두 만족하므로 두 이미지는 같은 문자를 나타낸다.


주어진 두 이미지가 같은 문자를 나타내는지 판정하는 프로그램을 작성하시오.
입력은 데이터 집합 최대 200개로 이루어진다. 0이 두 개 적힌 줄이 나오면 입력이 끝난다. 각 데이터 집합의 형식은 다음과 같다.
image 1
image 2
각 이미지의 형식은 다음과 같다.
h w
p(1,1) ... p(1,w)
...
p(h,1) ... p(h,w)
h와 w는 이미지의 세로와 가로 픽셀 수이고, 1≤h≤100, 1≤w≤100이다. 이어지는 h개의 줄에는 각각 문자 w개가 구분자 없이 붙어서 주어진다. p(y,x)는 위에서 y번째 줄, 왼쪽에서 x번째 픽셀의 색이다. 마침표(".")는 흰색을, 샵 기호("#")는 검은색을 뜻한다.
각 데이터 집합마다 두 이미지가 같은 문자를 나타내면 yes를, 그렇지 않으면 no를 한 줄에 출력한다. 다른 문자는 출력하지 않는다.