만드는 중입니다

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

단어를 포함하는 순열

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

요약
A의 서로 다른 순열 중 B를 연속 부분 문자열로 포함하는 것의 개수를 10007로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

영어 소문자로 이루어진 단어 AA와 BB가 주어진다. AA의 글자를 모두 사용해 다시 배열하면 여러 단어를 만들 수 있다. 이렇게 만들 수 있는 서로 다른 단어 중에서 BB를 연속한 부분 문자열로 포함하는 단어가 몇 개인지 세어라. 배열 방법이 달라도 결과가 같은 단어라면 한 번만 센다.

개수를 1000710007로 나눈 나머지를 구한다.

입력

첫째 줄에 영어 소문자로 이루어진 단어 AA가 주어진다. AA의 길이는 500500보다 크지 않다.

둘째 줄에 영어 소문자로 이루어진 단어 BB가 주어진다. BB의 길이는 AA의 길이보다 길지 않다.

출력

첫째 줄에 조건을 만족하는 단어의 개수를 1000710007로 나눈 나머지를 출력한다.

힌트

AA가 mirko이고 BB가 mir이면 조건을 만족하는 단어는 kmiro, komir, mirko, mirok, okmir, omirk 여섯 개다.

예제3

  1. 예제 1

    입력
    mirko
    mir
    
    예상 출력
    6
    
  2. 예제 2

    입력
    sssss
    ss
    
    예상 출력
    1
    
  3. 예제 3

    입력
    barbarabarbara
    barbabarba
    
    예상 출력
    30