#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