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

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

게으른 철자 대회 (큰 입력)

면접 대비

시간 제한5초메모리 제한512 MB

요약
목표 단어의 각 위치에서 이웃 글자로 만들 수 있는 서로 다른 단어 개수를 1,000,000,007로 나눈 나머지를 구합니다.
난이도

쉬움10점 중 2점

유형
조합론, 문자열, 수학
정답자
아직 제출이 없습니다

문제

철자 대회에 나온 참가자는 목표 단어 WW의 철자를 말한다. 참가자가 말한 단어 AA는 길이가 WW와 같고, 모든 ii에 대해 AA의 ii번째 글자가 WW의 i−1i-1번째, ii번째, i+1i+1번째 글자 가운데 하나와 같으면 정답으로 인정한다. WW에 00번째 글자는 없으므로 AA의 첫 글자는 WW의 첫 글자나 두 번째 글자와 같아야 한다. 마찬가지로 AA의 마지막 글자는 WW의 마지막 글자나 그 바로 앞 글자와 같아야 한다. 목표 단어 자신은 언제나 정답으로 인정한다.

대회를 준비하면서 목표 단어마다 서로 다른 정답 단어가 몇 개인지 세어야 한다. 이 수가 매우 커질 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어지는 TT개의 줄에 소문자 알파벳(a부터 z)으로만 이루어진 문자열이 한 줄에 하나씩 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 각 문자열의 길이는 11 이상 10001000 이하이다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 11부터 시작하는 테스트 케이스 번호이고, yy는 서로 다른 정답 단어의 개수를 109+710^9 + 7로 나눈 나머지이다.

설명

목표 단어가 ag이면 정답으로 인정하는 단어는 aa, ag, ga, gg로 네 개다. 목표 단어가 aa이면 정답은 aa 하나뿐이다.

예제3

  1. 예제 1

    입력
    4
    ag
    aa
    abcde
    x
    
    예상 출력
    Case #1: 4
    Case #2: 1
    Case #3: 108
    Case #4: 1
    
  2. 예제 2

    입력
    1
    z
    
    예상 출력
    Case #1: 1
    
  3. 예제 3

    입력
    3
    aba
    abab
    abba
    
    예상 출력
    Case #1: 8
    Case #2: 16
    Case #3: 16