만드는 중입니다

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

문자열

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

요약
주어진 문자열 A가 무한 문자열의 접두사일 때, A와 맞는 최소의 k를 구합니다.
난이도

보통10점 중 7점

유형
문자열 매칭, 수학, 구현
정답자
아직 제출이 없습니다

구성 방법

연구소 RIGS는 무한 문자열을 만드는 새로운 방법을 연구하고 있다.

빈 문자열 S0(k)=εS_{0}^{(k)} = \varepsilon에서 시작한다. 다음 버전은 다음과 같이 만든다. 현재 버전을 kk번 반복해 이어 붙인 뒤, 연속한 두 복사본 사이마다 임의의 기호를 하나씩 넣는다. 모든 버전에서 같은 kk를 쓰지만, 넣는 기호는 버전마다 달라도 된다. 이 과정을 계속하면 무한 문자열 S∞(k)S_{\infty}^{(k)}가 된다.

예를 들어 k=3k = 3일 때 S1(3)=rtS_{1}^{(3)} = \mathtt{rt}라고 하자. 이를 세 번 반복하고 x\mathtt{x}와 r\mathtt{r}을 넣으면 S2(3)=rtxrtrrtS_{2}^{(3)} = \mathtt{rtxrtrrt}가 된다. S3(3)S_{3}^{(3)}은 S2(3)S_{2}^{(3)}, a\mathtt{a}, S2(3)S_{2}^{(3)}, r\mathtt{r}, S2(3)S_{2}^{(3)}을 차례로 이어 붙인 것이다.

문제

길이가 nn인 문자열 AA가 주어진다. AA는 S∞(k)S_{\infty}^{(k)}의 접두사이다. AA를 접두사로 가지는 S∞(k)S_{\infty}^{(k)}를 위의 방법으로 만들 수 있는 최소의 kk를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이후 TT개의 줄에 테스트가 하나씩 주어진다. 각 테스트는 비어 있지 않으며 소문자 라틴 알파벳으로만 이루어져 있다. 테스트 케이스의 개수는 10510^5을 넘지 않고, 모든 테스트 문자열 길이의 합은 10610^6을 넘지 않는다.

출력

정확히 TT개의 줄을 출력한다. ii번째 줄에는 ii번째 테스트에 대한 최소 kk를 출력한다.

예제1

  1. 예제 1

    입력
    2
    abacabab
    rtxrtrrtartxrtrrtrrtxrt
    
    예상 출력
    2
    3