주기
시간 제한1초메모리 제한128 MB
문자열 x를 여러 조각으로 나누어 y와의 편집 거리 최댓값이 가장 작아지도록 합니다.
문제
알파벳 위에서 정의된 두 문자열 와 에 대해, 와 사이의 편집 거리는 를 로 바꾸는 데 필요한 최소 편집 연산 횟수이다. 편집 연산은 다음 세 가지이다.
- 교체(change): 의 한 문자를 의 한 문자로 바꾼다.
- 삭제(deletion): 에서 한 문자를 지운다.
- 삽입(insertion): 의 한 문자를 에 끼워 넣는다.
예를 들어 아래 그림은 와 의 편집 거리가 임을 보여 준다. b를 h로 바꾸는 교체, d를 지우는 삭제, i를 끼워 넣는 삽입, 이렇게 세 번의 연산이 필요하다.

반복되는 문자열의 정확한 주기(exact period)는 다음과 같이 정의한다. 문자열 를 () 꼴로 쓸 수 있고 가 그러한 문자열 중 가장 짧을 때, 를 의 정확한 주기라고 한다. 예를 들어 이면 이므로 가 의 정확한 주기이다.
근사 주기(approximate period)도 비슷하게 정의한다. 두 문자열 와 가 주어졌을 때, 를 비어 있지 않은 부분 문자열 로 나누어 로 쓴다고 하자. 와 모든 부분 문자열 사이의 편집 거리가 정수 이하이면, 를 의 -근사 주기라고 부른다.
와 가 주어질 때, 가 의 -근사 주기가 되는 최소의 를 구하여라. 예를 들어 이고 이면, 를 로 나눌 수 있고, 와 abcd, abc, abb 사이의 편집 거리는 각각 , , 이다. 이 중 가장 큰 값이 이므로 는 의 -근사 주기이고, 최소의 는 이다.
입력
입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 두 줄로 이루어지며, 첫째 줄에는 문자열 가, 둘째 줄에는 문자열 가 주어진다. 의 길이는 을, 의 길이는 을 만족하고, 두 문자열은 모두 알파벳 인 소문자 영어 문자로만 이루어져 있다.
출력
출력은 표준 출력으로 한다. 각 테스트 케이스마다 가 의 -근사 주기가 되는 최소 정수 를 한 줄에 하나씩 출력한다.