T582967 L1-6 破解数字锁

题目描述

门上有一个开着的三位数字锁。 由于小明太调皮,在他拨弄数字锁的时候不小心改变了他的密码,慌乱中小明又闭合了数字锁,现在他没办法开锁了。 所幸的是,这个数字锁在你每次尝试完密码后,会告诉你有 $a$ 个数位正确但是位置不对,有 $b$ 个数位正确并且位置对了。 * 例如密码“123”,尝试“213”,此时 $a = 2$,$b = 1$。 小明试了五次都没有找出正确的单词,泄气的小明想拜托你写一个程序,帮助他根据已有提示找出所有可能的答案。

输入格式

一共输入 $5$ 行,每行输入三位整数 $s$ 和整数 $a$、$b$($0 \le b , a \le 3$,$a + b \le 3$),代表密码、正确但是位置不对的数位个数和正确并且位置对了的数位个数,以空格间隔。 保证整数的数位互不相同。三位整数不包含前导 $0$。

输出格式

第一行输出一个整数 $n$,代表可能的密码数量。接下来 $n$ 行,每行输出一个三位整数 $t$,代表密码 $t$ 可能正确,整数的数位互不相同,答案按照数字正序输出。