#include<cstdio>
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
const int N=25;
int que[N];
int n,k,m;
inline int cnt(int pos,int dir,int cnt)
{
while(cnt--)
do{
pos=(pos+dir+n-1)%n+1;
}while(que[pos]==0);//走到下一个非零位置
return pos;
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d%d%d",&n,&k,&m)&&n)
{
_rep(i,1,n)que[i]=i;
int res=n,p1=n,p2=1;
while(res)
{
p1=cnt(p1,1,k);
p2=cnt(p2,-1,m);
printf("%3d",p1);
res--;
if(p2!=p1)
printf("%3d",p2),res--;
que[p1]=que[p2]=0;
if(res)putchar(',');
}
puts("");//漏掉了
}
return 0;
}
【题解】UVA133 模拟
最新推荐文章于 2019-02-17 20:46:00 发布