#P3517. And Then There Was One
And Then There Was One
题目描述
我们来玩一个移除石子的游戏。
初始时,有 $n$ 块石子按顺时针顺序排成一个圆圈,并从 $1$ 到 $n$ 编号(如图 1 所示)。你还将获得两个数字 $k$ 和 $m$。从这个初始状态开始,按照下面的规则逐步移除石子,直到只剩下一块为止。
- 第一步,移除编号为 $m$ 的石子。
- 第二步,从编号为 $m$ 的石子原本所在位置开始,顺时针跳过 $k-1$ 个仍然存在的石子,移除下一个石子。
- 之后的每一步,都从上一步被移除的石子所在位置开始,顺时针跳过 $k-1$ 个仍然存在的石子,并移除下一个。
- 重复这个过程,直到只剩下一块石子。
请输出最后剩下的那块石子的编号。
例如,对于 $n = 8$, $k = 5$, $m = 3$ 的情况,如图 1 所示,最终剩下的石子是编号 $1$。
图 1:示例游戏
初始状态:$8$ 块石子按顺时针排成一圈。
- 第一步:移除编号为 $3$ 的石子(因为 $m = 3$)。
- 第二步:从编号 $3$ 原来的位置开始,跳过 $4$ 个石子 $4, 5, 6, 7$,移除下一个,即 $8$。
- 第三步:跳过还存在的石子 $1, 2, 4, 5$,移除 $6$。注意此时编号为 $3$ 和 $8$ 的石子已经被移除,所以不计入跳跃过程中。
- 第四步至第七步:继续上述过程,直到只剩下一块石子。
- 最终状态:最后剩下的石子是编号 $1$,因此答案为 $1$。
输入
输入包含多组数据集,每组格式如下:
n k m
每组数据表示一次游戏。输入以一行 0 0 0
结束,表示输入结束。
每个数据集满足以下条件:
- $2 \leq n \leq 10000$
- $1 \leq k \leq 10000$
- $1 \leq m \leq n$
- 数据集数量少于 $100$
输出
对于每组输入数据,输出一行,仅包含最终剩下的石子的编号。输出中不要添加多余的空格或字符。
输入示例
8 5 3
100 9999 98
10000 10000 10000
0 0 0
输出示例
1
93
2019
来源
Japan 2007