만드는 중입니다

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

숨겨진 메시지

면접 대비

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

요약
원래 문구에서 세 문자열이 각각 순서대로 나타나도록 글자를 고르는 방법의 수를 1,000,000,007로 나눈 나머지로 구합니다.
난이도

보통10점 중 5점

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

문제

John은 지역 신문을 읽다가 "chime a cork teen"이라는 문구를 "eat", "more", "chicken"이라는 세 개의 부분 문구로 나눌 수 있다는 것을 알아챘다. 세 부분 문구를 합치면 원래 문구와 정확히 같은 글자가 들어 있고, 각 부분 문구의 글자는 원래 문구에서와 같은 순서로 나타난다. 세 부분 문구 전체에서 각 글자가 나타나는 횟수도 원래 문구와 같다.

John은 신문이 자신에게 메시지를 보내고 있다고 생각하기 시작했지만, 그런 메시지가 특별할 것이 없다는 것을 보여 주려고 한다. John이 찾아낼 법한, 문구를 세 단어로 나누는 방법의 수를 세려고 한다.

세 부분 문구와 원래 문구가 주어지면, 원래 문구에서 부분 문구들을 만들어 내는 방법의 수를 구하라. 방법의 수는 매우 클 수 있으므로 1,000,000,007로 나눈 나머지를 출력하라.

입력

입력은 네 줄로 이루어진다. 처음 세 줄은 각각 1에서 100개의 소문자로 이루어진 부분 문구이다. 네 번째 줄은 3에서 300개의 소문자로 이루어진 원래 문구이다. 세 부분 문구 길이의 합은 원래 문구의 길이와 같다.

출력

원래 문구를 세 그룹으로 나누는 방법의 수를 한 줄에 출력하라. 각 그룹은 세 부분 문구 중 하나와 같아야 한다. 수는 1,000,000,007로 나눈 나머지로 출력하라.

예제3

  1. 예제 1

    입력
    eat
    more
    chicken
    chimeacorkteen
    
    예상 출력
    2
    
  2. 예제 2

    입력
    the
    great
    depression
    depressigortheneat
    
    예상 출력
    2
    
  3. 예제 3

    입력
    a
    a
    a
    aaa
    
    예상 출력
    6