시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
5 초 256 MB 13 6 4 44.444%

문제

문자열 분석은 DNA와 단백질 분자의 연구를 진행하기 위해 생물학과 화학 분야에서 종종 사용된다. 문자열 분석을 하는 데 있어, 긴 문자열에서 얼마나 많은 부분 문자열이 (적어도 두 번) 반복되는지 찾아내는 것이 중요한 문제이다.

이 문제에서 최대 100 000개의 알파벳 문자열이 주어지면, 여러분은 그 문자열 중 모든 반복되는 부분 문자열의 개수를 찾아야한다. 이 때, 두 번 이상 등장하는 모든 유일한 부분 문자열을 세어야 한다. 예를 들어, 주어지는 문자열이 "aabaab"이면 반복되는 부분 문자열은 총 5개가 있다 : "a", "aa", "aab", "ab", "b". 또, 주어지는 문자열이 "aaaaa"이면 반복되는 부분 문자열은 총 4개가 있다 : "a", "aa", "aaa", "aaaa". 반복되는 부분 문자열은 겹칠 수도 있다는 것에 유의하도록 하자 (두 번째 예시의 "aaaa").

입력

첫 줄에는 테스트 케이스의 수 T가 정수로 주어진다. 입력은 최대 10개의 테스트 케이스로 이루어진다.

각 테스트 케이스마다 첫 번째 줄에 알파벳으로만 이루어진 문자열이 주어진다. 문자열의 길이는 최대 100 000이다.

출력

각 테스트 케이스마다, 주어지는 문자열에서 반복되는 모든 유일한 부분 문자열의 개수를 출력한다. 이 때, 답은 부호있는 32비트 정수형으로 항상 표현할 수 있다.

예제 입력

3
aabaab
aaaaa
AaAaA

예제 출력

5
4
5

힌트