您的位置:首页 > 产品设计 > UI/UE

救济金发放The Dole QueueUVA 133

2016-12-28 22:54 483 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: