- #include<cstdio>
- int main(){
- int a[25];
- int N,k,m;
- while(scanf("%d%d%d",&N,&k,&m)==3 && N){
- for(int i=N-1;i>=0;i--){ //倒序输入
- a[N-i-1]=i+1;
- }
- int leave=N;
- int k1=N-1; //逆序
- int m1=0; //顺序
- while(leave){ //当留下0人时退出循环
- for(int i=0;i<k;i++){
- if(a[k1=(N+k1)%N]==0)i--;
- k1--;
- }
- k1++;
- for(int i=0;i<m;i++){
- if(a[m1=(m1%N)]==0)i--;
- m1++;
- }
- m1--;
- if(m1!=k1){
- leave-=2;
- if(leave)
- printf("%3d%3d,",a[k1],a[m1]);
- else printf("%3d%3d",a[k1],a[m1]);
- a[k1]=0;a[m1]=0;
- }
- else {
- leave--;
- if(leave)
- printf("%3d,",a[k1]);
- else printf("%3d",a[k1]);
- a[k1]=a[m1]=0;
- }
- }
- printf("\n");
- }
- return 0;
- }
救济金发放The Dole QueueUVA 133
最新推荐文章于 2020-02-15 19:28:22 发布