숨겨진 메시지
면접 대비시간 제한1초메모리 제한1024 MB
원래 문구에서 세 문자열이 각각 순서대로 나타나도록 글자를 고르는 방법의 수를 1,000,000,007로 나눈 나머지로 구합니다.
문제
John은 지역 신문을 읽다가 "chime a cork teen"이라는 문구를 "eat", "more", "chicken"이라는 세 개의 부분 문구로 나눌 수 있다는 것을 알아챘다. 세 부분 문구를 합치면 원래 문구와 정확히 같은 글자가 들어 있고, 각 부분 문구의 글자는 원래 문구에서와 같은 순서로 나타난다. 세 부분 문구 전체에서 각 글자가 나타나는 횟수도 원래 문구와 같다.
John은 신문이 자신에게 메시지를 보내고 있다고 생각하기 시작했지만, 그런 메시지가 특별할 것이 없다는 것을 보여 주려고 한다. John이 찾아낼 법한, 문구를 세 단어로 나누는 방법의 수를 세려고 한다.
세 부분 문구와 원래 문구가 주어지면, 원래 문구에서 부분 문구들을 만들어 내는 방법의 수를 구하라. 방법의 수는 매우 클 수 있으므로 1,000,000,007로 나눈 나머지를 출력하라.
입력
입력은 네 줄로 이루어진다. 처음 세 줄은 각각 1에서 100개의 소문자로 이루어진 부분 문구이다. 네 번째 줄은 3에서 300개의 소문자로 이루어진 원래 문구이다. 세 부분 문구 길이의 합은 원래 문구의 길이와 같다.
출력
원래 문구를 세 그룹으로 나누는 방법의 수를 한 줄에 출력하라. 각 그룹은 세 부분 문구 중 하나와 같아야 한다. 수는 1,000,000,007로 나눈 나머지로 출력하라.