#include <stdio.h> int main() { int n, k, m; scanf("%d %d %d", &n, &k, &m); int alive[n]; for (int i = 0; i < n; i++) { alive[i] = 0; // 0表示活着 } int current = k; // 直接使用k,因为k已经是0-based索引 int remaining = n; while (remaining > 1) { // 数m个活着的人 int count = 0; while (count < m) { if (alive[current] == 0) { count++; } if (count < m) { current = (current + 1) % n; } } // 淘汰当前人 alive[current] = 1; remaining--; // 找到下一个活着的人 do { current = (current + 1) % n; } while (alive[current] == 1); } // 输出幸存者的索引(0-based) for (int i = 0; i < n; i++) { if (alive[i] == 0) { printf("%d", i); // 直接输出索引,因为题目要求0-based break; } } return 0; }