救济金发放 (The Dole QUEUE UVa 133)
来源:互联网 发布:js与java aes 编辑:程序博客网 时间:2024/05/16 05:56
n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上)。接下来被官员选中的人(1个或者2个)离开队伍。
输入n,k,m输出每轮里被选中的人的编号(如果有两个人,先输出被A选中的)。例如,n=10,k=4,m=3,输出为4 8, 9 5, 3 1, 2 6, 10, 7。注意:输出的每个数应当恰好占3列。
输入:
10 4 3
输出:
_ _ 4_ _ 8,_ _ 9_ _ 5,_ _ 3_ _ 1,_ _ 2_ _ 6,_ 10,_ _ 7
/*救济金发放 (The Dole QUEUE UVa 133)*/ #include"stdio.h"#define max 20int n,k,m;int a[max];int chu(int p,int d,int t){ while(t--) { do { p=(p+d+n-1)%n + 1; }while(a[p]==0); } return p;}int main(){ int i,j=1; int p,q; scanf("%d%d%d",&n,&k,&m); for(i=1;i<=n;++i,++j) { a[i]=j; } int left = n; p=n;q=1; while(left) { p=chu(p,1,k); q=chu(q,-1,m); printf("%3d,",p);left--; if(q!=p) { printf("%3d,",q); left--; } a[p]=a[q] = 0; } printf("\n");}
1 0
- UVa - 133 - The Dole Queue(救济金发放)
- 救济金发放 (The Dole Queue, UVa 133)
- UVa 133 The Dole Queue(救济金发放)
- 救济金发放(The Dole Queue, UVa 133)
- 救济金发放 (The Dole QUEUE UVa 133)
- UVA 133 The Dole Queue(救济金发放)
- UVa OJ The Dole Queue 救济金发放 133
- 救济金发放(The Dole Queue,UVa33)
- 救济金发放The Dole Queue
- 例题 4-3 救济金发放(The Dole Queue) UVa 133
- 救济金发放 (The Dole QUEUE) do while
- uva133救济金发放The Dole Queue
- 救济金发放The Dole QueueUVA 133
- 救济金发放(uva-133)
- UVA 133 救济金发放
- uva 133 救济金发放
- UVa 133 救济金发放
- UVa 133 救济金发放
- 从零开始的Android新项目9 - 前端用后台接口设计
- 矩阵基础1006 HDU 4549
- 哈希码
- arc机制
- 矩阵基础1007 UVA 11149
- 救济金发放 (The Dole QUEUE UVa 133)
- 事件监听一
- java使double保留两位小数的多方法 java保留两位小数
- msg_ptr in mq_timedsend
- [leetcode] 160. Intersection of Two Linked Lists
- 我的第一篇博客
- 矩阵基础1008 UVA 11885
- CentOS7 安装mysql
- SQL中Group By的使用