#P1780. Code
Code
题目描述
KEY公司是安全硬件领域的领先企业,最近开发了一种新型保险箱。要打开它,你不需要钥匙,但需要在键盘上输入正确的位密码(就好像这有什么新鲜的!)。该公司提供多种型号,从儿童玩具保险箱()到军用版本()。
一旦输入了正确密码的最后一位数字,保险箱就会立即打开。键盘上没有"确认"键。当你输入的数字超过位时,只有最后位有效。例如(在4位版本中),如果正确密码是4567,而你打算输入数字序列1234567890,那么当你按下7键时,门就会打开。
实现这一功能的软件相当简单。在位版本中,保险箱始终处于种内部状态之一。保险箱的当前状态仅表示最近输入的位数字。这些状态中的一个(在上面的例子中是状态456)被标记为解锁状态。如果保险箱处于解锁状态,并且按下了正确的键(在上面的例子中是7),门就会打开。否则,保险箱将切换到相应的新状态。例如,如果保险箱处于状态456,然后你按下8,保险箱将进入状态568。
打开保险箱的一种简单策略是依次输入所有可能的密码。然而,在最坏情况下,这将需要次按键。通过选择一个好的数字序列,可以最多用次按键打开保险箱。你所要做的就是找到一个包含所有位序列恰好一次的数字序列。KEY公司声称,对于军用版本(),即使是当今最快的计算机也需要数十亿年才能找到这样的序列——但显然他们不知道有些程序员有多厉害...
输入
输入包含多个测试用例。每个测试用例由一个整数指定。你可以假设。最后一个测试用例后面跟着一个零。
输出
对于每个由指定的测试用例,输出一行包含个数字的序列,该序列包含每个位序列恰好一次。
输入样例 1
1
2
0
输出样例 1
0123456789
00102030405060708091121314151617181922324252627282933435363738394454647484955657585966768697787988990
来源
Ulm Local 2004