幸运数(lucky)

背景描述:
MM的幸运数字是4和7,MM特别喜欢这两个数字,因此,所有有4和7组成的数字,MM都认为是幸运的,比如4477,4,777,但是44877就不是幸运数了,因为,MM不喜欢8,她只喜欢4和7。
MM看到类似44877这样的非幸运数字就会很不开心,MM觉得自己要不幸运了。
Will当然希望MM能开心起来啦,因此他决定帮助MM,他想把一个不幸运的数写成一些幸运数的和,这样,MM就又能高兴起来啦。
但是Will的作业好多耶,做也做不完,所以他就来找你啦。
考虑到Will很懒,所以,你需要提供一个所用幸运数最少的分解。
顺便告诉你个小秘密,MM喜欢字典序靠前的东西,因此,如果在所用数字的最少的前提下,你能找到字典序最先的拆分方法,MM会更开心的。MM越开心,你的奖励就越多哦!

问题:
给定一个数N,将其分解为一些幸运数的和,要求所用数字最少,如果有多组解要求字典序最小。
无解则输出 No solution

对于字典序的解释
对于数列 a[1..n] <> b[1..n] 我们寻找第一位子 i 使得 a[i] != b[i] ,如果 a[i] < b[i] 则 a 字典序小, 否则 b[i] 字典序小

如果输出是一组合法幸运分解,那么得3分,如果同时这个分解所用的幸运数个数是最少的,那么得7分,若这个分解又是字典序最小的,则得10分。

输入:
一行,一个整数 N

输出:
一行,N的幸运分解,两个数之间用空格隔开。

样例1:
[lucky.in]
11

[lucky.out]
4 7

样例2:
[lucky.in]
13

[lucky.out]
No solution

Hint:
样例1的答案是最优拆分。

数据规模:
对于30%的数据 1 ≤ N ≤ 100
对于40%的数据 1 ≤ N ≤ 10000
对于70%的数据 1 ≤ N ≤ 100000
对于10%的数据 N = 774099
对于10%的数据 N = 987654321
对于100%的数据 1 ≤ N ≤ 1000,000,000

Tip:
对于本题,你可以使用在 userfile 文件夹里的程序 judge.exe 对你的输出进行评分。
使用方法:
在 judge.exe 所在文件夹目录下建立输入文件 lucky.in ,并提供你的程序的输出文件 lucky.out ,运行程序 judge.exe ,评分程序将会把这个数据的得分情况输出在 result.txt 文件内。

信息

ID
1595
难度
9
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
被复制
3
上传者