#include #include #include typedef struct Student { char name[100]; int applied; } Student; int cmpfunc(const void *a, const void *b) { Student *student1 = (Student *)a; Student *student2 = (Student *)b; return strcmp(student1->name, student2->name); } int main() { int max_students, num_students; char name[100]; Student students[1000]; int students_accepted = 0; int i, j; if (scanf("%d", &max_students) != 1 || max_students <= 0) { puts("Nespravny vstup"); return 1; } if (getchar() == '\n') { puts("Nespravny vstup"); return 1; } if (scanf("%d", &num_students) != 1 || num_students <= 0) { puts("Nespravny vstup"); return 1; } if (num_students > max_students) { num_students = max_students; } for (i = 0; i < num_students; i++) { if (scanf("%s", name) != 1) { puts("Ziadne prihlasky"); return 1; } for (j = 0; j < i; j++) { if (strcmp(students[j].name, name) == 0) { break; } } if (j == i) { strcpy(students[i].name, name); students[i].applied = 1; } } qsort(students, i, sizeof(Student), cmpfunc); printf("Prijati students:\n"); for (i = 0; i < max_students; i++) { if (students[i].applied == 1) { printf("%s\n", students[i].name); students_accepted++; } else { break; } } if (students_accepted < num_students) { printf("Neprijati studenti:\n"); for (i = 0; i < num_students; i++) { if (students[i].applied == 0) { printf("%s\n", students[i].name); } } } return 0; }