from itertools import permutations
if __name__ == "__main__":
num = [int(x) for x in input().strip().split(' ')]
n = 1
flag = True
while True:
i = n
while i > 0:
yu = i % 10
num[yu] -= 1
i //= 10
if max(num) == 0:
break
elif max(num) < 0:
flag = False
break
else:
n += 1
continue
if flag == False:
print('No Answer')
else:
res = []
for i in range(10):
if num[i] < 0:
res += [str(i)]*abs(num[i])
ans = []
for item in permutations(res):
ans.append(''.join(item))
ans = set(ans)
ans = list(ans)
ans.sort()
for item in ans:
print(n, int(item))
思路概是:从 1 开始 循环,每次遍历一个数字,就计算这个数字的位数 个数,然后将 输入的数组对应的位置减 1,直到输入数组 出现 最大值为0 的情况,表示有解,跳出循环;若
输入数组 最大值大于0,继续循环;输入数组最大值小于0,表示没有答案,跳出循环;对于有解跳出的情况,判断 输入数组为负值的元素,以及个数,进行全排列#贝壳找房##笔试题目##秋招#