#include<cstdio> #include<cstring> using namespace std; const int maxn=65; char name[maxn][maxn]; bool out[maxn]; int main() { int n; while(~scanf("%d",&n)) { memset(name,0,sizeof(name)); memset(out,0,sizeof(out)); for(int i=0; i<n; i++) { scanf("%s",&name[i]); } int w,s; scanf("%d,%d",&w,&s); int t=w-1; while(n!=0) { t=(t+s-1)%n;///约瑟夫环公式,t=出局的人的序号(起始时为一开始报数的人的序号)+报数号-1%现有的人数 printf("%s\n",name[t]); for(int i=t; i!=n-1; i++) { name[i][0]='\0'; strcpy(name[i],name[i+1]);///输出淘汰者的名字后将后面的成员往前面覆盖 } n--; if(t==n)///当位于最后被除去时,应从头开始 t=1; } } return 0; }
浙公网安备 33010602011771号