AT_code_festival_china_a Lock
题目描述
[problemUrl]: https://atcoder.jp/contests/code-festival-2014-china-open/tasks/code_festival_china_a
爱丽丝有一个带有 $n$ 位数字拨轮锁的盒子。锁上的每个拨轮都可以设置为 $0$ 到 $9$ 之间的一个数字。不幸的是,她忘记了 $n$ 位的密码。现在她打算尝试所有可能的数字组合来解锁。
每次她可以进行以下两种操作之一:
- 选择一个拨轮,将该位数字加 $1$。(如果该位原本是 $9$,则变为 $0$。)
- 选择一个拨轮,将该位数字减 $1$。(如果该位原本是 $0$,则变为 $9$。)
有趣的是,即使在尝试过程中找到了正确的密码,她也想尝试所有的组合。不过,尝试所有 $10^n$ 种组合是一项艰巨的工作。请帮助她,给出一种能使操作次数尽可能少的方案。
最初,锁的数字组合为 $00\ldots0$。
请计算 $m$,即尝试所有组合所需的最少操作次数,并输出在每次操作后(包括初始组合 $00\ldots0$)出现的 $m+1$ 个数字组合。如果有多种可能的答案,可以任选其一。
检查当前数字组合是否为密码不计为一次操作。
输入格式
输入按以下格式给出。
> $ n $
- 第一行给出一个整数 $n\ (1 \leq n \leq 5)$,表示拨轮锁的位数。
输出格式
第一行输出 $m$,即尝试所有组合所需的最少操作次数。
接下来的 $m+1$ 行,按顺序输出每次操作后出现的数字组合,包括初始组合 $00\ldots0$。如果有多种可能的答案,可以任选其一。请确保最后一行后也有换行。
说明/提示
### 问题说明
不要忘记在第一行输出最少操作次数 $9$。在接下来的行中,需要输出包括初始组合 $0$ 在内的 $m+1$ 行。
由 ChatGPT 4.1 翻译