import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 总人数
int k = scanner.nextInt(); // 开始报数的位置
int m = scanner.nextInt(); // 报数到m的人出队
// 创建数组标记每个人是否在队列中,true表示在队列中
boolean[] inCircle = new boolean[n];
for (int i = 0; i < n; i++) {
inCircle[i] = true;
}
int remaining = n; // 剩余人数
int current = k; // 当前报数的位置
int count = 0; // 报数计数器
// 当剩余人数大于1时继续循环
while (remaining > 1) {
// 如果当前位置的人在队列中,报数加1
if (inCircle[current]) {
count++;
// 当报数到m时,该人出队
if (count == m) {
inCircle[current] = false;
remaining--;
count = 0; // 重置报数
}
}
// 移动到下一个位置,循环移动
current = (current + 1) % n;
}
// 找到最后剩下的人
for (int i = 0; i < n; i++) {
if (inCircle[i]) {
System.out.println(i);
break;
}
}
}
}

京公网安备 11010502036488号