logo AlgoBeat OnlineJudge
登录 注册

#10365. [htoj P12563] 打字机

内存限制:256 MiB 时间限制:1000 ms 输入文件:typer.in 输出文件:typer.out
题目类型:传统 评测方式:文本比较
上传者: htoj

题目描述

Cuber QQ 得到了一台很奇怪的打字机。

这台打字机上,数字键 0 和数字键 1 坏掉了,因此 Cuber QQ 不能直接打出任何包含数字 0 或数字 1 的正整数。我们称一个正整数是 可输入数,当且仅当它的十进制表示中不含数字 0 和数字 1。例如,2, 9, 234, 8888 是可输入数;10, 101, 1203, 2024 不是可输入数。

现在 Cuber QQ 想得到一个目标正整数 。虽然不能直接输入 ,但他可以输入若干个可输入数,并用加号把它们相加。对于一个正整数 ,如果存在 个可输入数 ,满足:

则称 可以用 个可输入数表示。

由于 Cuber QQ 不想敲太多数字,他想知道:

  1. 表示 所需的最小
  2. 在使用最小 的情况下,有多少种不同的有序表达式

两个表达式被认为不同,当且仅当存在某个位置 ,使得第 个加数不同。例如,表达式 和表达式 被认为是两种不同的表达式。

由于方案数可能很大,你只需要输出方案数对 取模后的结果。

可以证明,对于本题输入中的每个 ,最小 一定不超过

输入格式

从文件 typer.in 中读入数据。

第一行一个整数 ,表示测试数据组数。

接下来的 行,每行一个整数 ,其中用 表示 的十进制表示长度。

输出格式

输出到文件 typer.out 中。

对于每个测试数据,输出一行两个整数 。其中 表示最少需要几个可输入数; 表示使用最小 时的有序表达式数量,对 取模后的结果。

样例

输入

4
19
100
911
20

输出

3 42
2 56
2 392
3 36

数据范围与提示

样例解释

  • 对于 ,它不能表示成两个可输入数之和。
    当使用 个可输入数时,三个加数都只能是一位数。设它们分别为 ,则需要满足 ,满足条件的有序三元组共有 个。

数据规模与约定

  • 每个 是一个不含前导零的正整数;
  • 每个 至少包含一个数字 0 或数字 1。