만드는 중입니다

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

정수와 구간

시간 제한3초메모리 제한512 MB

요약
길이 n의 숫자 문자열 중 주어진 각 구간의 숫자 곱이 9의 배수가 되는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 구간, 정수론
정답자
아직 제출이 없습니다

문제

시간 제한은 3000 ms, 메모리 제한은 512 MB이다.

Isaac에게는 앞자리에 0이 올 수 있는 십진수 정수 a1a2…an‾\overline{a_1 a_2 \dots a_n}가 있다. mm개의 구간 [l1,r1],[l2,r2],…,[lm,rm][l_1, r_1], [l_2, r_2], \dots, [l_m, r_m]이 주어지며, 각 구간 ii에 대해 ali×ali+1×⋯×ari mod 9=0a_{l_i} \times a_{l_i + 1} \times \dots \times a_{r_i} \bmod 9 = 0이 성립한다고 한다. 이 조건을 모두 만족하는 정수 a1a2…an‾\overline{a_1 a_2 \dots a_n}의 개수를 (109+7)(10^9+7)로 나눈 나머지를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 파일의 끝(EOF)에서 끝난다.

각 테스트 케이스의 첫 줄에는 두 정수 nn과 mm이 주어진다. 이어지는 mm개의 줄에는 각각 두 정수 lil_i와 rir_i가 주어진다.

출력

각 테스트 케이스마다 결과를 나타내는 정수를 한 줄에 출력한다.

제한

  • 1≤n,m≤1031 \leq n, m \leq 10^3
  • 1≤li≤ri≤n1 \leq l_i \leq r_i \leq n
  • 테스트 케이스는 최대 100100개이다.

예제1

  1. 예제 1

    입력
    2 1
    1 2
    4 2
    1 3
    2 4
    50 1
    1 50
    
    예상 출력
    40
    4528
    100268660