约瑟夫问题
#include <iostream>
#include <cstdio>
#include <cstring>
const int maxn = 55;
const int maxl = 20;
using namespace std;
char name[maxn][maxl];
bool flag[maxn];
int main()
{
int n;
while(~scanf("%d",&n)){
memset(flag,false,sizeof(flag));
for(int i = 0; i < n; ++i)
scanf("%s",name[i]);
int cnt = 0;
int s,m;
scanf("%d,%d",&s,&m);
s--;
while(cnt != n){
int c = 0;
while(true){
if(!flag[s%n])
c++;
if(c == m) break;
s++;
}
cnt++;
flag[s%n] = true;
printf("%s\n",name[s%n]);
}
}
return 0;
}