#P1780. Code

Code

题目描述

KEY公司是安全硬件领域的领先企业,最近开发了一种新型保险箱。要打开它,你不需要钥匙,但需要在键盘上输入正确的nn位密码(就好像这有什么新鲜的!)。该公司提供多种型号,从儿童玩具保险箱(n=2n=2)到军用版本(n=6n=6)。

一旦输入了正确密码的最后一位数字,保险箱就会立即打开。键盘上没有"确认"键。当你输入的数字超过nn位时,只有最后nn位有效。例如(在4位版本中),如果正确密码是4567,而你打算输入数字序列1234567890,那么当你按下7键时,门就会打开。

实现这一功能的软件相当简单。在nn位版本中,保险箱始终处于10n110^{n-1}种内部状态之一。保险箱的当前状态仅表示最近输入的n1n-1位数字。这些状态中的一个(在上面的例子中是状态456)被标记为解锁状态。如果保险箱处于解锁状态,并且按下了正确的键(在上面的例子中是7),门就会打开。否则,保险箱将切换到相应的新状态。例如,如果保险箱处于状态456,然后你按下8,保险箱将进入状态568。

打开保险箱的一种简单策略是依次输入所有可能的密码。然而,在最坏情况下,这将需要n×10nn \times 10^n次按键。通过选择一个好的数字序列,可以最多用10n+n110^n + n - 1次按键打开保险箱。你所要做的就是找到一个包含所有nn位序列恰好一次的数字序列。KEY公司声称,对于军用版本(n=6n=6),即使是当今最快的计算机也需要数十亿年才能找到这样的序列——但显然他们不知道有些程序员有多厉害...

输入

输入包含多个测试用例。每个测试用例由一个整数nn指定。你可以假设1n61 \leq n \leq 6。最后一个测试用例后面跟着一个零。

输出

对于每个由nn指定的测试用例,输出一行包含10n+n110^n + n - 1个数字的序列,该序列包含每个nn位序列恰好一次。

输入样例 1

1
2
0

输出样例 1

0123456789
00102030405060708091121314151617181922324252627282933435363738394454647484955657585966768697787988990

来源

Ulm Local 2004