little w and Digital Root
题号:NC21755
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

数根(又称数字根Digital root)是正整数的一种性质,换句话说,每个正整数都有一个数根。 数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止,或是,将一数字重复做数字和,直到其值小于十为止,则所得的值为该数的数根。

比如:12345\rightarrow15\rightarrow 6

小w现在定义一种叫做小w数根运算,这种运算的规则如下: 首先对十进制数的每个数位定义了一个权值,个位为1,十位为2,百位为3,千位为4,万为为5......以此类推 接下来把这个数的各个位数乘以该数位的权值再相加求和,若加完后的值大于等于10的话,则重复此过程,直到整个数字小于10为止,所得的值为小w数根。 现在小w想知道给定一个值域[L,R],请你告诉他,值域范围内有多少个数字的小w数根等于1,2,3,4,5,6,7,8,9


输入描述:

第一行输入一个正整数T(T\leq 10^4),表示样例的组数。对于每组案例: 输入两个正整数L,R(1\leq L\leq R \leq 10^{18})

输出描述:

对于每组案例,请先输出Case #x:,x表示当前样例编号。
然后在同一行输出9个整数,分别表示值域内小w数根等于1,2,3,4,5,6,7,8,9的数各有多少个。 整数之间用空格隔开,行末不允许有多余空格。
示例1

输入

复制
10
1 10
2 55
36 78
15 15
3 59
56 77
89 93
90 90
55 99
1 99

输出

复制
Case #1: 1 2 1 1 1 1 1 1 1
Case #2: 0 7 7 7 7 7 7 6 6
Case #3: 0 5 5 6 6 6 5 5 5
Case #4: 0 0 0 0 0 0 1 0 0
Case #5: 0 7 8 7 7 7 7 7 7
Case #6: 0 3 3 3 3 2 2 3 3
Case #7: 0 1 1 1 1 0 0 0 1
Case #8: 0 1 0 0 0 0 0 0 0
Case #9: 0 6 6 5 5 5 6 6 6
Case #10: 1 13 13 12 12 12 12 12 12