#P1781. In Danger

In Danger

题目描述

弗拉维奥·约瑟夫斯和40名叛军被罗马人围困。他的同伴们宁愿自杀也不愿投降,于是他们决定围成一个圈,每隔两人(每数到第三人时)杀死一人,绕圈执行直到无人存活。约瑟夫斯不想自杀,于是他计算出了最后存活的位置(然后他就没有自杀,因为没人能监视他了)。

我们考虑这个“游戏”的一个变种:每隔一人离开(即每数到第二人时离开)。当然,现在的人数会远多于41人,因为我们有了计算机。你需要计算出安全位置。请注意,我们可能会用你的程序来计算本次比赛的获胜者!

输入格式

输入包含多个测试用例。每个用例指定一个数 ( n ),其格式为 "xyez",含义如下:当 ( n ) 用十进制表示时,第一位数字是 ( x ),第二位数字是 ( y ),后面跟着 ( z ) 个零。其中 ( 0 \leq x, y \leq 9 ),零的个数 ( 0 \leq z \leq 6 )。保证 ( n > 0 )。最后一个测试用例后接字符串 "00e0"。

输出格式

对每个测试用例,输出一行表示最后存活者的位置。假设参与者编号为1到( n ),计数从1号开始,即第一个离开的是2号。例如,若有5人,离开顺序为2、4、1、5,最后存活者是3号。

输入输出示例

输入数据 1

05e0  
01e1  
42e0  
66e6  
00e0  

输出数据 1

3  
5  
21  
64891137  

题目来源

Ulm Local 2004