C1163 - 罗马轮盘

题目描述

你的程序应能够处理约瑟夫问题的以下变体。n > 0 个人最初围成一圈,面向内侧,并从 1 到 n 编号。编号从 1 到 n 按顺时针方向连续进行。你分配的编号是 1。从编号为 i 的人开始,按顺时针方向计数,数 k(k > 0)个人,该人立即出圈。然后我们从出圈者左侧紧邻的人开始,继续顺时针方向再数 k 个人。被选中的人来到出圈者之前所在的位置。计数随后从他左侧的紧邻的人开始,数到第 k 个人出圈,依此类推,直到只剩下一人。

例如,当 n = 5,k = 2,i = 1 时,出圈的顺序是 2、5、3 和 1。最后剩余的人是 4。

输入格式

你的程序必须读取包含 n 和 k 值的输入行(按此顺序)。输入以一行 n 和 k 均为$0$的值结束。

你的程序可以假设最多有 100 人参加此活动。

输出格式

对于每一行输入,输出应从哪一个人的编号开始计数,以确保你是最后的那个剩余的人。例如,在上述情况下,安全的起始位置是 3。

输入输出样例 #1

输入 #1

5 2
1 5
0 0

输出 #1

3
1

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:rou.in,输出文件名为:rou.out