#include<bits/stdc++.h>
using namespace std;
int n, k, m, a[28], l, g1, g2;
int go(int p,int d,int t){//p是人,d是方向,t是人数
while(t--){//执行t次
do{(p=(p+d+n-1)%n+1);}while(a[p]==0);//删人操作
}
return p;
}
int main() {
while (scanf("%d%d%d", &n, &k, &m) == 3 && n) {
for(int i=1;i<=n;i++)a[i]=i;
l=n;g1=n;g2=1;//初始设定
while(l){
g1=go(g1,1,k);
g2=go(g2,-1,m);
printf("%3d",g1);
l--;
if(g1!=g2){
printf("%3d",g2);
l--;
}
a[g1]=a[g2]=0;
if(l)printf(",");//一轮过后输出“,”
}
printf("\n");
}
return 0;
}
UVA1303 Wall 题解
2024-02-14 21:26:01 41 阅读