UVa 133 - The Dole Queue
2012-08-24 11:03
465 查看
环形队列问题,有N张牌,k表示从最左开始,往右每次隔k张牌取出一张,到最右边之后再回到最左边;m则是从最右边开始,往左每次隔m张牌取出一张,到最左边之后再回到最右边,直到把牌全部取出
#include <iostream> #include <iomanip> using namespace std; int queue[24]; int main() { int n,k,m; int front,rear,count1,count2,cc; while(cin>>n>>k>>m) { if(!n&&!k&&!m) break; for(int i=1; i<=n; i++) queue[i]=i; front=0; rear=n+1; cc=0; while(cc<n) { count1=0;count2=0; while(1) { if(queue[front]!=0) { count1++; } if(front>n) front=0; if(count1==k) { cout<<setw(3)<<queue[front]; cc++; break; } front++; } while(1) { if(queue[rear]!=0) { count2++; } if(rear<1) rear=n+1; if(count2==m) { if(queue[front]!=queue[rear]) { cout<<setw(3)<<queue[rear]; cc++; } break; } rear--; } queue[front]=0; queue[rear]=0; if(cc!=n) cout<<","; } cout<<endl; } return 0; }
相关文章推荐
- Uva 133:The Dole Queue
- UVA 133 The Dole Queue——思路题
- UVa133--The Dole Queue
- uva 133 - The Dole Queue
- uva 133 - The Dole Queue
- UVA - 133 The Dole Queue
- UVA 133-The Dole Queue
- UVA133-The Dole Queue
- 【模拟】【环形数组】-UVA-133- The Dole Queue |java实现
- UVA - 133 The Dole Queue 单纯模拟:1A
- Problem 014 —— UVa 133 - The Dole Queue
- The Dole Queue uva133
- uva 133 - The Dole Queue
- UVa-133 The Dole Queue
- UVA133 The Dole Queue
- 救济金发放(The Dole Queue, UVa 133)
- UVA133 The Dole Queue (模拟)
- UVA - 133 The Dole Queue
- UVA - 133 The Dole Queue
- UVa133 - The Dole Queue