Победители олимпиады

Для решения данной задачи можно было сохранять статистику решенных задач для каждого участника, проходясь по строкам набора входных данных.

Ее можно хранить в виде двумерного массива $$$sol[10000][6]$$$, где $$$sol[i][j]$$$ будет показывать, решена ли задача под номером $$$j + 1$$$ у участника с идентификатором $$$i$$$ (по условию задачи, $$$0000 \le i \le 9999$$$, а задачам можно сопоставить порядковые номера в соответствии с номером буквы в алфавите. То есть, «A» может иметь номер $$$1$$$, «B» — номер $$$2$$$, и так далее).

Инициализируем значения массива $$$sol$$$ нулями. Теперь при обработке строки, содержащей вердикт «OK», можно записывать 1 в соответсвующее значение в массиве, иначе строку можно игнорировать. Также после обработки очередной строки можно пересчитывать максимальное количество решенных задач на текущий момент. Создадим переменную $$$mx = 0$$$ и будем пересчитывать ее как $$$mx = max(mx, \sum\limits_{j=0}^{5}sol[i][j])$$$.

После обработке всех строк можно пройтись по массиву $$$sol$$$ и проверить, какое количество участников имеет количество решенных задач, равное $$$mx$$$. Полученное число и будет ответом на задачу.

При этом, если ни один участник не решил ни одной задачи, то значение $$$mx$$$ будет равно $$$0$$$, а суммарное количество участников с этим результатом получится равным числу всех участников олимпиады.