만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

문자열 X

시간 제한3초메모리 제한1024 MB

요약
N개의 문자열 중 정확히 K개에 부분 문자열로 나타나는 서로 다른 비어 있지 않은 문자열의 개수를 구합니다.
난이도

보통10점 중 7점

유형
문자열, 문자열 매칭, 해시맵
정답자
아직 제출이 없습니다

문제

길이가 1 이상이고 알파벳 소문자로만 이루어진 미지의 문자열 XX가 있다. 이 문자열을 알아내기 위해 NN개의 단서 S1S_1, S2S_2, ⋯\cdots, SNS_N을 모았다. NN개의 단서 중 정확히 KK개가 XX를 부분문자열로 가지고 있음을 알게 되었다. 이때 XX가 될 수 있는 문자열은 몇 개인가?

입력

첫째 줄에 두 정수 NN과 KK가 주어진다. (1≤N≤500 0001 \le N \le 500\,000, 1≤K≤N1 \le K \le N) 이후 NN개 줄에 걸쳐 알파벳 소문자로만 이루어진 문자열 SiS_i가 각각 주어진다. (1≤∣Si∣≤500 0001 \le |S_i| \le 500\,000, ∣S1∣+∣S2∣+⋯+∣SN∣≤500 000|S_1| + |S_2| + \cdots + |S_N| \le 500\,000)

출력

XX가 될 수 있는 문자열의 개수를 첫째 줄에 출력한다.

힌트

첫 번째 예제에서 XX가 될 수 있는 문자열은 g, r이다. 두 번째 예제에서 XX가 될 수 있는 문자열은 t, o, w, n, to, ow, wn, tow, own, town이다. 문자열 AA가 문자열 BB를 부분문자열로 가진다는 것은 AA의 양 끝에서 각각 0개 이상의 문자를 지워 BB를 만들 수 있음을 의미한다.

예제3

  1. 예제 1

    입력
    5 3
    bridgetown
    georgetown
    freetown
    capetown
    kingstown
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5 5
    bridgetown
    georgetown
    freetown
    capetown
    kingstown
    
    예상 출력
    10
    
  3. 예제 3

    입력
    3 2
    aaaaa
    bbbb
    ccc
    
    예상 출력
    0