#include #include typedef struct agent { char name[21]; int bs; double suma; } AGENT; typedef struct issuer { char name[11]; int N; AGENT ag[1001]; } ISSUER; int end(int N, char *name); void input(void); void output(void); void vypisZaujemcov(int bs, double suma); ISSUER iss; int main(void) { char name[11]; int N; while (1) { scanf("%d", &N); scanf("%s", name); if (!end(N, name)) { iss.N = N; strcpy(iss.name, name); input(); output(); } else { return 0; } } } int end(int N, char *name) { if ((N == 0) && (!strcmp(name, "END"))) return 1; else return 0; } void input(void) { char bs[5]; int i; double suma; for (i = 1; i <= iss.N; i++) { scanf(" %s", iss.ag[i].name); scanf(" %s", bs); if (!strcmp(bs, "buy")) { iss.ag[i].bs = 0; } else iss.ag[i].bs = 1; scanf(" %lf", &suma); iss.ag[i].suma = suma; } } void output(void) { int i; printf("%s\n", iss.name); for (i = 1; i <= iss.N; i++) { printf("%s:", iss.ag[i].name); vypisZaujemcov(iss.ag[i].bs, iss.ag[i].suma); } } void vypisZaujemcov(int bs, double suma) { int pocet = 0; int i; if (!bs) { for (i = 1; i <= iss.N; i++) { if (iss.ag[i].bs) { if (iss.ag[i].suma <= suma) { printf(" %s", iss.ag[i].name); pocet++; } } } } else { for (i = 1; i <= iss.N; i++) { if (!iss.ag[i].bs) { if (iss.ag[i].suma >= suma) { printf(" %s", iss.ag[i].name); pocet++; } } } } if (pocet == 0) { printf(" NO-ONE\n"); } else printf("\n"); }