지그재그 숫자

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

요약
자릿수가 최대 500인 [A, B] 구간에서 각 자릿수의 증감이 번갈아 나타나고 M으로 나누어지는 수의 개수를 센다.
난이도

어려움10점 중 8점

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

문제

양의 정수에서 이웃한 두 자리 숫자의 대소 관계가 증가와 감소를 번갈아 나타날 때, 이 수를 지그재그 수라고 한다.

예를 들어 29472947은 각 자리가 2→9→4→72 \to 9 \to 4 \to 7로 증가 → 감소 → 증가 순서이므로 지그재그 수이다. 또한 7194671946은 감소 → 증가 → 감소 → 증가 순서이므로 지그재그 수이다. 반면 123123, 7144671446, 7144271442, 8888은 지그재그 수가 아니다. 한 자리 정수는 모두 지그재그 수로 본다.

AA 이상 BB 이하의 정수 중에서 MM의 배수이면서 지그재그 수인 것의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 AA, 둘째 줄에 BB, 셋째 줄에 MM이 주어진다. (1≤A≤B≤105001 \le A \le B \le 10^{500}, 1≤M≤5001 \le M \le 500)

출력

AA 이상 BB 이하의 정수 중 MM의 배수이면서 지그재그 수인 것의 개수를 1000010000으로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    100
    200
    5
    
    예상 출력
    13
    
  2. 예제 2

    입력
    6
    1234567
    3
    
    예상 출력
    246