#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Register
{
int q;
int period;
int current;
};
typedef struct Register *rp;
int cmp(const void *rp1, const void *rp2)
{
rp r1 = (rp) rp1;
rp r2 = (rp) rp2;
if (r1->current != r2->current)
return r1->current - r2->current;
return r1->q - r2->q;
}
int main()
{
int q, period, total = 0;
;
char s[20];
struct Register r[1000];
while (gets(s), strcmp(s, "#"))
{
sscanf(s, "%*s %d %d", &q, &period);
r[total].q = q;
r[total].current = r[total].period = period;
total++;
}
int n;
scanf("%d", &n);
while (n--)
{
qsort(r, total, sizeof(struct Register), cmp);
printf("%d\n", r[0].q);
int current = r[0].current;
r[0].current += r[0].period;
int i;
for (i = 1; i < total; i++)
if (r[i].current == current && n--)
{
printf("%d\n", r[i].q);
r[i].current += r[i].period;
}
else
break;
}
return 0;
}
ZOJ-2212
最新推荐文章于 2021-11-13 09:52:20 发布