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

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

부분 문자열

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

요약
길이 L인 소문자 문자열 중 주어진 N개 단어(최대 6개) 가운데 정확히 C개를 부분 문자열로 포함하는 것의 개수를 1,000,000,009로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 문자열 매칭, 트라이, 조합론
정답자
아직 제출이 없습니다

문제

알파벳 소문자로만 이루어진 단어 NN개와 정수 CC, LL이 주어진다.

길이가 LL인 문자열 중에서 주어진 단어 NN개 가운데 정확히 CC개를 부분 문자열로 포함하는 것이 몇 개인지 구한다. 세는 문자열도 알파벳 소문자로만 이루어진다.

입력

첫째 줄에 NN, CC, LL이 공백으로 구분되어 주어진다. (1≤N≤61 \le N \le 6, 0≤C≤N0 \le C \le N, 1≤L≤501 \le L \le 50)

둘째 줄부터 NN개의 줄에 단어가 한 줄에 하나씩 주어진다. 각 단어는 알파벳 소문자로만 이루어지고, 길이는 1 이상 50 이하이다. 같은 단어가 두 번 주어지지 않는다.

출력

조건을 만족하는 문자열의 개수를 1,000,000,009로 나눈 나머지를 첫째 줄에 출력한다.

예제5

  1. 예제 1

    입력
    4 2 3
    a
    aa
    aaa
    aaaa
    
    예상 출력
    50
    
  2. 예제 2

    입력
    1 0 7
    abcdefgh
    
    예상 출력
    31810104
    
  3. 예제 3

    입력
    1 1 7
    abcdefgh
    
    예상 출력
    0
    
  4. 예제 4

    입력
    4 3 3
    a
    b
    c
    d
    
    예상 출력
    24
    
  5. 예제 5

    입력
    4 2 3
    ab
    bc
    xy
    yz
    
    예상 출력
    2