아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

정수 안의 정수

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

요약
A부터 B까지 모든 정수를 십진수로 썼을 때 C가 겹침을 허용해 부분 문자열로 나타나는 횟수를 1000000007로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

정수 구간 [A,B][A, B]와 정수 CC가 주어진다. 구간에 속한 정수를 하나씩 십진법으로 적고, 그 문자열 안에 CC의 십진 표기가 부분 문자열로 몇 번 나타나는지 모두 더한 값을 구한다.

겹쳐서 나타나는 위치도 각각 센다. C=33C = 33이면 333333 안에서는 두 번, 334334 안에서는 한 번 나타나므로 구간 [333,334][333, 334]의 답은 33이다.

정수는 앞에 0을 붙이지 않고 적는다. 00은 한 글자 0으로 적는다.

입력

한 줄에 세 정수 AA, BB, CC가 공백으로 구분되어 주어진다. (0≤A≤B≤10100000 \le A \le B \le 10^{10000}, 0≤C≤105000 \le C \le 10^{500})

세 수는 모두 앞에 0이 붙지 않은 형태로 주어진다.

출력

CC가 나타나는 총 횟수를 10000000071000000007로 나눈 나머지를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    1 3 2
    
    예상 출력
    1
    
  2. 예제 2

    입력
    333 334 33
    
    예상 출력
    3
    
  3. 예제 3

    입력
    0 10 0
    
    예상 출력
    2