整位数(numbers)

题目描述

如果一个正整数除最高位以外,其余数位全都是 00,那么这个数被称为 整位数

例如,下面这些数都是整位数:

4000, 1, 9, 800, 904000,\ 1,\ 9,\ 800,\ 90

而下面这些数不是整位数:

110, 707, 222, 1001110,\ 707,\ 222,\ 1001

现在给定一个正整数 nn,请你把它拆成若干个整位数之和,并且要求使用的整位数个数尽可能少。

例如:

5009=5000+95009 = 5000 + 9

所以可以拆成 22 个整位数。

输入格式

第一行包含一个整数 tt,表示测试用例数量。

接下来 tt 行,每行包含一个正整数 nn

输出格式

对于每个测试用例,输出两行。

第一行输出一个整数 kk,表示拆分出的整位数个数。

第二行输出 kk 个整位数,表示一种合法拆分方案。

为了保证答案唯一,要求输出的 kk 个整位数 按照数值从大到小排列

输入输出样例 #1

输入 #1

5
5009
7
9876
10000
10

输出 #1

2
5000 9
1
7
4
9000 800 70 6
1
10000
1
10

样例解释 #1

对于第 11 组数据:

5009=5000+95009 = 5000 + 9

因此最少需要 22 个整位数。

对于第 22 组数据:

77

本身就是整位数,因此最少需要 11 个整位数。

对于第 33 组数据:

9876=9000+800+70+69876 = 9000 + 800 + 70 + 6

因此最少需要 44 个整位数,并且需要按照从大到小的顺序输出。

对于第 44 组数据:

1000010000

本身就是整位数,因此最少需要 11 个整位数。

对于第 55 组数据:

1010

本身就是整位数,因此最少需要 11 个整位数。

数据范围与约定

对于所有测试数据,保证:

1t104,1n1041 \le t \le 10^4,\quad 1 \le n \le 10^4
测试点 分值 tt nn 特殊性质
121\sim 2 1010 20\le 20 100\le 100
343\sim 4 100\le 100 104\le 10^4 A\text{A}
565\sim 6 B\text{B}
7107\sim 10 2020 1000\le 1000
111511\sim 15 2525 5000\le 5000
162016\sim 20 104\le 10^4

特殊性质 A\text{A}:保证 nn 本身是整位数。

特殊性质 B\text{B}:保证 nn 的十进制表示中至少包含一个数字 00