// UVa 133 - The Dole Queue
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
bool first;
int main() {
int n, k, m;
while ((cin >> n >> k >> m) && n && k && m) {
int a = n - 1;
int b = 0;
int out = 0;
first = true;
bool dead[20];
memset(dead, false, sizeof(dead));
// loop
do {
// move
for (int i = 0; i < k; i++)
do {
a = (a + 1) % n;
} while (dead[a]);
for (int i = 0; i < m; i++)
do {
b = (b - 1 + n) % n;
} while (dead[b]);
// print
if (!first)
printf(",");
else
first = false;
printf("%3d", a + 1);
dead[a] = true;
out++;
if (a != b) {
printf("%3d", b + 1);
dead[b] = true;
out++;
}
} while (out < n);
cout << endl;
}
return 0;
}
Saturday, June 6, 2015
UVa 133 - The Dole Queue
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment