아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

서로 다른 부분 문자열

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

요약
문자열의 서로 다른 부분 문자열 개수를 빈 문자열과 전체 문자열까지 포함해 세며, 각 테스트 문자열은 길이 5000 이하다.
난이도

보통10점 중 7점

유형
문자열, 트라이, 정렬, 문자열 매칭
정답자
아직 제출이 없습니다

문제

주어진 문자열 SS 는 서로 다른 부분 문자열을 몇 개 가지고 있을까요?

예를 들어 S=S = abc 라면, SS 는 서로 다른 부분 문자열을 77 개 가집니다: 빈 문자열, a, b, c, ab, bc, abc. 빈 문자열과 SS 자기 자신도 SS 의 부분 문자열로 셉니다.

반면 S=S = aaa 라면, SS 는 서로 다른 부분 문자열을 44 개만 가집니다: 빈 문자열, a, aa, aaa.

입력

첫 번째 줄에 테스트 케이스의 수 NN 이 주어집니다. 이어지는 NN 개의 각 줄에는 11 자 이상 50005000 자 이하의 영숫자로 이루어진 문자열 SS 가 하나씩 주어집니다.

출력

각 테스트 케이스마다 SS 의 서로 다른 부분 문자열의 개수를 한 줄에 하나씩 출력합니다.

제한

SS 의 길이를 ll 이라고 합시다. 전체 테스트 케이스의 50%50\% 는 l≤1000l \le 1000 을 만족하고, 모든 테스트 케이스에서 l≤5000l \le 5000 입니다.

예제6

  1. 예제 1

    입력
    2
    abc
    aaa
    
    예상 출력
    7
    4
    
  2. 예제 2

    입력
    1
    a
    
    예상 출력
    2
    
  3. 예제 3

    입력
    1
    ab
    
    예상 출력
    4
    
  4. 예제 4

    입력
    1
    aab
    
    예상 출력
    6
    
  5. 예제 5

    입력
    1
    a1b2
    
    예상 출력
    11
    
  6. 예제 6

    입력
    3
    x
    xx
    xyz
    
    예상 출력
    2
    3
    7