救济金发放The Dole QueueUVA 133
- #include
- 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;
- }
还没有评论,来说两句吧...