Школьная олимпиада по информатике проводилась для учеников 7-11-х классов, участвующих в общем конкурсе. Каждый участник олимпиады мог набрать от 0 до 70 баллов. Для определения призеров олимпиады, сначала отбираются 25% участников, показавших лучшие результаты. Если у последнего участника, входящего в 25%, оказывается такое же количество баллов, как и у следующих за ним в итоговой таблице, все они считаются призерами только тогда, когда набранные ими баллы больше половины максимально возможных. Иначе все они не считаются призерами.
Напишите эффективную по времени работы и по используемой памяти программу, которая по результатам олимпиады будет определять минимальный балл призера олимпиады, и количество призеров в каждой параллели (среди 7-х, 8-х, 9-х, 10-х и 11-х классов отдельно). Гарантируется, что, хотя бы одного призера по указанным правилам, определить можно.
На вход программе сначала подается число участников олимпиады N
. В каждой из следующих N
строк находится результат одного из участников олимпиады в следующем формате:
<Фамилия> <Имя> <класс> <баллы>
,
где <Фамилия> – строка, состоящая не более, чем из 30 символов;
- <Имя> – строка, состоящая не более, чем из 15 символов;
- <класс> – число от 7 до 11;
- <баллы> – целое число от 0 до 70 набранных участником баллов.
<Фамилия> и <Имя>, <Имя> и <класс>, а также <класс> и <баллы> разделены одним пробелом.
Пример входной строки:
Программа должна выводить в первой строке минимальный балл призера, а в следующей – число призеров по всем параллелям отдельно.