【题目描述】
数学课上,老师给小红布置了一个有趣的挑战:给定一个正整数 M,请找到一组数,使得它们的 3 的幂次之和恰好等于 M。
具体来说,你需要找到一个正整数 N 和一个非负整数序列 A=(A1,A2,…,AN),满足以下条件:
- 1≤N≤20
- 0≤Ai≤10(对于所有 1≤i≤N)
- i=1∑N3Ai=M
可以证明,在题目给定的约束条件下,一定存在至少一组满足条件的 N 和 A。
【输入格式】
输入一个正整数 M。
【输出格式】
第一行输出一个正整数 N。
第二行输出 N 个非负整数 A1,A2,…,AN,用空格分隔。
如果存在多组满足条件的解,输出任意一组均可。
【样例 1】
6
2
1 1
【样例 1 解释】
当 N=2,A=(1,1) 时,$\displaystyle \sum_{i=1}^N 3^{A_i} = 3^1 + 3^1 = 3 + 3 = 6$,满足所有条件。
另外,N=4,A=(0,0,1,0) 也是一组合法解,因为 30+30+31+30=1+1+3+1=6。
【样例 2】
100
4
2 0 2 4
【样例 2 解释】
验证:32+30+32+34=9+1+9+81=100,满足条件。
【样例 3】
59048
20
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
【样例 3 解释】
注意题目中 1≤N≤20 的限制条件。这个样例展示了如何使用满 20 个数来构造解。
【数据规模与约定】
- 1≤M≤105