Uva 133:The Dole Queue
Posted xietx1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva 133:The Dole Queue相关的知识,希望对你有一定的参考价值。
题目传送门:Uva 133:The Dole Queue
#include <stdio.h>
int n, k, m;
int a[25];
int go(int position, int direction, int step) // direction为方向
int ct = 0;
while (true)
if (a[position] != 0)
++ct; // 不为0,计数器加1
if (ct == step) break; // 找到step个数后停止
position += direction;
if (position > n) position = 1;
if (position < 1) position = n;
return position;
int main()
while (3 == scanf("%d%d%d", &n, &k, &m) && n)
for (int i = 1; i <= n; ++i)
a[i] = i;
int left = n, p1 = 1, p2 = n;
while (left > 0)
p1 = go(p1, 1, k);
p2 = go(p2, -1, m);
printf("%3d", a[p1]); // 先输出一个
--left;
if (p1 != p2) // 如果p1!=p2再输出另一个
printf("%3d", a[p2]);
--left;
a[p1] = a[p2] = 0;
if (left) // 如果还有剩余,则输出一个逗号
printf(",");
putchar('\\n');
return 0;
以上是关于Uva 133:The Dole Queue的主要内容,如果未能解决你的问题,请参考以下文章