SP1785 CODE - Code
题目描述
**KEY公司**,作为安全硬件领域的领先企业,开发了一种新型保险箱。要打开它,你不需要钥匙,但需要在键盘上输入正确的 $n$ 位密码(好像这有什么新意似的!)。有多种型号可供选择,从儿童玩具保险箱($2$ 位密码)到军用版本($6$ 位密码)。
只要正确密码的最后一位被输入,保险箱就会打开。这里没有“确认”键。当你输入超过 $n$ 位数字时,只有最后输入的 $n$ 位数字是有效的。例如(在 $4$ 位版本中),如果正确密码是 $4567$,而你计划输入数字序列 $1234567890$,那么在你按下数字 $7$ 键的那一刻,门就会打开。
实现这种效果的软件相当简单。在 $n$ 位版本中,保险箱始终处于 $10^{n-1}$ 种内部状态之一。保险箱的当前状态仅代表最近输入的 $n-1$ 位数字。这些状态中有一个(在上面的例子中,状态 $456$)被标记为“解锁状态”。如果保险箱处于解锁状态,然后按下了正确的键(上面的例子中是数字 $7$),门就会打开。否则,保险箱会转换到相应的新状态。例如,如果保险箱处于状态 $456$,然后你按下数字 $8$,保险箱就会进入状态 $568$。
打开保险箱的一个简单策略是一个接一个地输入所有可能的密码。然而,在最坏的情况下,这将需要 $n \times 10^n$ 次按键。通过选择一个好的数字序列,可以在最多 $10^n + n - 1$ 次按键内打开保险箱。你所要做的就是找到一个恰好包含每个 $n$ 位数字序列一次的数字序列。KEY 公司声称,对于军用版本($n=6$),即使使用当今最快的计算机,也需要数十亿年才能找到这样的序列——但显然他们不知道有些程序员能做什么...
输入格式
输入包含多个测试用例。每个测试用例由一个整数 $n$ 指定。你可以假设 $1 \leq n \leq 6$。最后一个测试用例之后跟着一个零。
输出格式
对于每个由 $n$ 指定的测试用例,输出一行,包含一个长度为 $10^n + n - 1$ 的数字序列,该序列恰好包含每个 $n$ 位数字序列一次。