사촌 문자열

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

요약
각 단계에서 두 문자열이 각각 절반 이하를 지워 같은 문자열이 될 수 있을 때, x가 y의 몇 번째 사촌인지 최소 n을 구하거나 관계가 없음을 판정한다.
난이도

보통10점 중 7점

유형
그래프, BFS, 문자열, 동적 계획법
정답자
아직 제출이 없습니다

문제

두 문자열 aa와 bb에서 각각 절반 이하의 문자를 지워 서로 같게 만들 수 있으면, 두 문자열을 첫 번째 사촌이라고 한다. 예를 들어 abcdef와 axcyd는 첫 번째 사촌이다. 첫 번째 문자열에서 66개 중 33개(b, e, f)를 지우고 두 번째 문자열에서 55개 중 22개(x, y)를 지우면 두 문자열 모두 acd가 되기 때문이다.

두 문자열 cc와 dd에 대해, cc의 첫 번째 사촌이면서 동시에 dd의 nn번째 사촌인 문자열 ee가 존재하면 cc와 dd를 (n+1)(n{+}1)번째 사촌이라고 한다.

두 문자열 xx와 yy가 주어질 때, xx가 yy의 nn번째 사촌이 되는 가장 작은 n≥1n \ge 1을 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄로 주어지며, 첫째 줄에 문자열 xx가, 둘째 줄에 문자열 yy가 주어진다. xx와 yy는 각각 11자 이상 100100자 이하의 소문자로 이루어진다. 마지막 테스트 케이스 다음에는 각 줄에 0 하나만 있는 두 줄이 주어지며, 이 종료 케이스는 처리하지 않는다.

출력

각 테스트 케이스마다 xx가 yy의 nn번째 사촌이 되는 가장 작은 nn을 한 줄에 출력한다. 그러한 nn이 존재하지 않으면 not related를 출력한다.

예제3

  1. 예제 1

    입력
    a
    b
    abb
    baa
    abcdef
    axcyd
    0
    0
    
    예상 출력
    2
    2
    1
    
  2. 예제 2

    입력
    abc
    abc
    z
    z
    0
    0
    
    예상 출력
    1
    1
    
  3. 예제 3

    입력
    x
    y
    0
    0
    
    예상 출력
    2