#CF1073E. 数位段求和

    ID: 6907 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数据结构动态规划组合数学位元掩码*2300

数位段求和

E. 数位段求和

时间限制:1 秒
内存限制:256 兆字节

给你两个整数 llrrlrl \le r)。你的任务是计算区间 [l,r][l, r] 内(包含端点)所有满足 每个数最多包含 kk 种不同数字 的数的和,并将这个和对 998244353998244353 取模后输出。

例如,当 k=1k=1 时,你需要计算 llrr 之间所有只由一种数字构成的数。对于 l=10,r=50l=10, r=50,答案是 11+22+33+44=11011+22+33+44=110

输入

只有一行,包含三个整数 l,r,kl, r, k1lr<10181 \le l \le r < 10^{18}1k101 \le k \le 10)——区间的左右边界以及最多允许的不同数字种数。

输出

输出一个整数 —— 区间 [l,r][l, r] 内所有满足条件的数的和,对 998244353998244353 取模。

示例

示例输入 1

10 50 2

示例输出 1

1230

示例输入 2

1 2345 10

示例输出 2

2750685

示例输入 3

101 154 2

示例输出 3

2189

注释

对于第一个示例,答案就是 llrr 的所有数的和,即 $50 \cdot \frac{51}{2} - 9 \cdot \frac{10}{2} = 1230$。这个例子在题目描述中针对 k=1k=1 的情况也做了解释。

对于第二个示例,答案就是 llrr 的所有数的和,即 234523462=27506852345 \cdot \frac{2346}{2} = 2750685

对于第三个示例,答案是 $101+110+111+112+113+114+115+116+117+118+119+121+122+131+133+141+144+151=2189$。