문자열 나누기
시간 제한2초메모리 제한512 MB
문자열 t를 주어진 N개의 문자열 조각으로 나누는 방법의 수를 1,000,000,007로 나눈 나머지로 구한다.
문제
문자열 와 서로 다른 문자열 개로 이루어진 집합 가 주어진다. 를 여러 조각으로 나누되, 각 조각이 의 원소가 되도록 해야 한다.
예를 들어 = abab, = {a, ab, b}이면 조건을 만족하는 분할 방법은 다음 4가지이다.
a,b,a,ba,b,abab,a,bab,ab
를 나누는 방법의 수를 구하시오. 답이 매우 커질 수 있으므로 1,000,000,007로 나눈 나머지를 출력한다.
입력
입력은 테스트 케이스 하나로 이루어지며 형식은 다음과 같다.
N
s1
.
.
.
sN
t
첫째 줄에 의 원소 개수 ()이 주어진다. 다음 개 줄에 서로 다른 문자열 개가 한 줄에 하나씩 주어진다. 번째 문자열 는 의 번째 원소이다. 는 알파벳 소문자로만 이루어지며 길이는 1 이상 100,000 이하이다. 모든 ()의 길이의 합은 200,000 이하이다. 마지막 줄에 나눌 문자열 가 주어진다. 는 알파벳 소문자로만 이루어지며 길이는 1 이상 100,000 이하이다.
출력
를 나누는 방법의 수를 1,000,000,007로 나눈 나머지를 출력한다.