Photolog
Back to list of problems
Student Grants
144.c
#include <stdio.h>
int N,k;
int students[26];
void
calc(void)
{
int i;
int out=0, order_stu=1, order_out=0;
for(i=1; i<=N; i++) {
students[i]=0;
}
while(1) {
int done=1;
for(i=1; i<=N; i++) {
if (students[i]!=40) {
done=0;
break;
}
}
if (done) {
break;
}
if (out==0) {
order_out++;
if (order_out>k) {
order_out=1;
}
out=order_out;
}
while (students[order_stu] == 40) {
order_stu++;
if (order_stu > N) {
order_stu=1;
}
}
if (students[order_stu]+out > 40) {
out -= 40-students[order_stu];
students[order_stu]=40;
} else {
students[order_stu] += out;
out = 0;
}
if (students[order_stu] == 40) {
printf("%3d", order_stu);
}
order_stu++;
if (order_stu > N) {
order_stu=1;
}
}
printf("\n");
}
int
main(void)
{
while(1) {
if (scanf(" %d %d", &N, &k)!=2) {
exit(0);
}
if (N==0) {
exit(0);
}
calc();
}
exit(0);
}









