#1628. 数码管

数码管

数码管

题目描述

在计算机中,数字以二进制的形式存储。而在实际生活中,为了阅读的方便,人们经常需要让数字用别 的形式显示出来,例如数码管。 具体来说,一个数码管由 7 个灯管构成,可以表示一位十进制数。

如图所示,第 11 个灯管编号为 AA,第 22 个灯管编号为 BB,以此类推。

现在,给定一个数字 nn 和你拥有的数码管个数 mm ,你需要判断能否用这些数码管显示出数字 nn 。如果可以,输出显示的方案。如果不可以,输出你需要补充多少个数码管。

输入格式

一行两个整数 n,mn,m.

输出格式

第一行一个字符串,如果可以,输出"Yes",否则输出"No".(不包含引号)

如果可以,则接下来输出 mm 行,每行 7 个用空格隔开的数字"0"或“1”。 第 ii 行的第 jj 个数字如果为 1, 表示第 ii 个数码管的第 jj 个灯管亮起,为 0 表示不亮。 方案中不应该包含前导零,也就是说,如果数字只有 kk 位,那么前面的 mkm-k 个数码管应该完全不亮。注意,如果 n=0n=0 ,则还是应该亮起一位。

如果不可以,输出一行一个数字,表示需要补充的数码管数量。

样例 #1

样例输入 #1

69 3

样例输出 #1

Yes
0 0 0 0 0 0 0
1 0 1 1 1 1 1
1 1 1 1 0 1 1

样例 #2

样例输入 #2

998244353 6

样例输出 #2

No
3

提示

对于 10%10\%的数据,满足 n=0n=0

对于 50%50\%的数据,满足 0n1000,0m90\le n\le 1000,0\le m\le 9

对于 75%75\%的数据,满足 0n26310 \le n \le 2^{63}-1

对于 80%80\%的数据,满足 0n26410 \le n \le 2^{64}-1

对于 100%100\%的数据,满足0n101000,0m10000\le n\le{10^{1000}},0\le m\le1000