#codefestivalchinaa. [code_festival_china_a]Lock
[code_festival_china_a]Lock
题目
艾丽斯有一个由个数字组成的密码箱,使用数字拨盘锁进行锁定。该锁的每个拨盘可以设置为数字到之间的一个数。不幸的是,她忘记了密码(位)。现在,她将尝试所有可能的数字组合来解锁密码。
她每次可以执行以下其中一种操作:
- 选择一个拨盘,将该数字加。(如果选中的数字是,则变为)
- 选择一个拨盘,将该数字减。(如果选中的数字是,则变为)
奇怪的是,即使在尝试过程中找到了正确的密码,她也希望尝试所有的组合。但是尝试所有的个组合是一项艰巨的工作。请通过展示如何尽量减少操作次数来帮助她。
密码箱初始时的数字组合设为。
计算并输出,即尝试所有数字组合所需的最少操作次数,并按顺序显示每次操作后的个数字组合,包括初始组合。如果有多个可能的答案,可以随意选择其中任意一个。
检查当前数字组合是否与密码匹配时不计入操作次数。
输入
输入数据按照下列格式给出。
- 第一行是一个整数,表示密码锁的位数。
输出
第一行输出一个整数,表示尝试所有数字组合所需的最少操作次数。
接下来的行中,按顺序输出试验过程中出现的数字组合。如果有多个可能的答案,可以随意选择其中任意一个。请确保在最后一行结尾处插入一个换行符。
输入示例 1
1
输出示例 1
9
0
1
2
3
4
5
6
7
8
9
不要忘记在第一行输出最少操作次数。
接下来的行中,注意需要输出行,包括初始组合。
输入示例 2
2
输出示例 2
99
00
01
02
03
04
05
06
07
08
09
19
18
17
16
15
14
13
12
11
10
20
21
22
23
24
25
26
27
28
29
39
38
37
36
35
34
33
32
31
30
40
41
42
43
44
45
46
47
48
49
59
58
57
56
55
54
53
52
51
50
60
61
62
63
64
65
66
67
68
69
79
78
77
76
75
74
73
72
71
70
80
81
82
83
84
85
86
87
88
89
99
98
97
96
95
94
93
92
91
90