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

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

welcome to code jam 부분 수열 세기

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

요약
각 입력 문자열에서 19자 목표 문자열을 부분 수열로 만드는 경우의 수를 세고 마지막 네 자리를 출력한다.
난이도

보통10점 중 5점

유형
동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

길이가 19인 문자열 welcome to code jam이 주어진 텍스트 안에 부분 수열로 몇 번 나타나는지 센다.

정확히 말하면, 텍스트를 tt라 하고 s[0]<s[1]<⋯<s[18]s[0] < s[1] < \cdots < s[18]을 만족하는 인덱스 수열 ss를 생각한다. 이때 t[s[0]]t[s[0]], t[s[1]]t[s[1]], ..., t[s[18]]t[s[18]]을 순서대로 이어 붙인 문자열이 welcome to code jam과 같아지는 ss가 몇 개인지 구한다. 문자가 같아도 위치가 다르면 서로 다른 방법으로 센다.

답이 매우 커질 수 있으므로 마지막 네 자리만 출력한다.

입력

첫 줄에 테스트 케이스의 개수 NN이 주어진다. 이어지는 NN개의 줄에 테스트 케이스가 한 줄씩 주어진다. 각 줄은 영어 소문자와 공백으로만 이루어지고, 공백으로 시작하거나 끝나지 않는다.

  • 1≤N≤1001 \le N \le 100
  • 각 줄의 길이는 1자 이상 500자 이하다.

출력

각 테스트 케이스마다 Case #x: dddd 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, dddddddd는 답의 마지막 네 자리다. 답이 네 자리보다 짧으면 앞을 0으로 채워 정확히 네 자리로 출력한다.

예제4

  1. 예제 1

    입력
    3
    elcomew elcome to code jam
    wweellccoommee to code qps jam
    welcome to codejam
    
    예상 출력
    Case #1: 0001
    Case #2: 0256
    Case #3: 0000
    
  2. 예제 2

    입력
    1
    welcome to code jam
    
    예상 출력
    Case #1: 0001
    
  3. 예제 3

    입력
    1
    w
    
    예상 출력
    Case #1: 0000
    
  4. 예제 4

    입력
    2
    abc
    maj edoc ot emoclew
    
    예상 출력
    Case #1: 0000
    Case #2: 0000