만드는 중입니다

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

Equanimous

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

요약
각 질의마다 l 이상 r 이하인 정수 m 중 f(m)이 k인 수들의 합을 k가 0부터 9까지인 경우로 나누어 10^9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

Alice, Bob, Eve가 크래프트 종이로 게임을 한다. Eve가 자연수를 하나 말할 때마다 Alice와 Bob은 그 수를 십진수 표기로 자기 종이에 쓰고, 각 자릿수 앞에 + 또는 -를 붙인 뒤 만든 산술식을 계산한다. 절댓값이 작은 쪽이 이긴다. 절댓값이 같으면 무승부이고 한 판을 더 한다.

게임이 끝나지 않는다면 그들은 퍼즐의 최적해를 찾는 데 집중하게 된다. f(m)f(m)을 mm으로 만들 수 있는 절댓값의 최솟값이라 하자. l≤m≤rl \leq m \leq r인 mm에 대해 f(m)f(m)을 구하라.

그들은 당신에게도 퍼즐을 냈다. 여러 질문 (l,r)(l, r)이 주어지면, l≤m≤rl \leq m \leq r이고 f(m)=kf(m) = k인 모든 mm의 합을 k=0,1,…,9k = 0, 1, \ldots, 9마다 구하라. 답은 109+710^9 + 7로 나눈 나머지로 출력한다.

입력

첫 줄에 질문의 개수 nn (1≤n≤50001 \leq n \leq 5000)이 주어진다. 이어지는 nn개 줄에 각각 질문을 나타내는 정수 ll, rr (1≤l≤r≤101001 \leq l \leq r \leq 10^{100})이 주어진다.

출력

각 질문마다 한 줄에 공백으로 구분한 정수 10개를 출력한다. k=0k = 0부터 k=9k = 9까지 kk번째 정수는 l≤m≤rl \leq m \leq r이고 f(m)=kf(m) = k인 모든 mm의 합을 109+710^9 + 7로 나눈 나머지이다.

힌트

1926081719260817의 자릿수는 {1,9,2,6,0,8,1,7}\{1, 9, 2, 6, 0, 8, 1, 7\}이며, 이들로 (+1−9−2−6+0+8+1+7)(+1-9-2-6+0+8+1+7) 식을 만들 수 있다. 이 식의 값과 절댓값은 모두 00이다.

1926081819260818의 자릿수는 {1,9,2,6,0,8,1,8}\{1, 9, 2, 6, 0, 8, 1, 8\}이며, 이들로 (+1−9+2+6−0−8−1+8)(+1-9+2+6-0-8-1+8) 식을 만들 수 있다. 이 식의 값은 −1-1이고 절댓값은 11이다.

예제1

  1. 예제 1

    입력
    7
    1 10
    11 50
    51 100
    101 500
    501 1000
    19260817 19260818
    1234567890123456789 1234567890987654321
    
    예상 출력
    0 11 2 3 4 5 6 7 8 9
    110 210 211 193 166 180 84 47 19 0
    385 770 579 497 424 310 306 243 171 90
    19080 34666 27312 19047 10615 5490 2594 1097 299 0
    43695 81005 67134 55962 46289 35085 23872 13924 6385 1899
    19260817 19260818 0 0 0 0 0 0 0 0
    230833519 749351908 0 0 0 0 0 0 0 0