约瑟夫问题模板题。
细节参见代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 10000 + 3;
const int INF = 1000000000;
int n,m,k,d[maxn];
int main() {
while(~scanf("%d%d%d",&n,&k,&m) && n) {
d[1] = 0;
for(int i = 2; i <= n; i++) d[i] = (d[i-1] + k) % i;
int ans = (m - k + 1 + d[n]) % n;
if(ans <= 0) ans += n;
printf("%d\n",ans);
}
return 0;
}