Результаты олимпиады подводятся без деления на классы. Победителем олимпиады становятся те, кто набрал больше всего баллов. Призерами олимпиады становятся участники, следующие за победителями.
Определите наибольший балл, который набрали призеры олимпиады и количество участников олимпиады, набравших такой балл. Выведите два числа: наибольший балл призера и количество участников, набравших такой балл.
Решение должно иметь сложность \(O(n)\), где \(n\) — общее количество участников олимпиады. Решение должно использовать \(O(1)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 9 92 Сергеев Петр 10 91 Петров Василий 11 92 Васильев Иван 9 93 |
92 2 |
В условиях предыдущей задачи выведите фамилию и имя участника олимпиады, набравшего наибольший балл, но не ставшего победителем. Если таких школьников несколько — выведите их количество.
Решение должно иметь сложность \(O(n)\), где \(n\) — общее количество участников олимпиады. Решение должно использовать \(O(1)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 9 93 Сергеев Петр 10 91 Петров Василий 11 92 Васильев Иван 9 93 |
Петров Василий |
Иванов Сергей 9 92 Сергеев Петр 10 91 Петров Василий 11 92 Васильев Иван 9 93 |
2 |
В олимпиаде по информатике принимало участие n человек.
Информация о результатах олимпиады записана в файле, каждая из строк которого имеет вид:
фамилия
имя
школа
балл
Фамилия и имя — текстовые строки, не содержащие пробелов. Школа — целое число от 1 до 999. Балл — целое число от 0 до 100.
Определите школы, из которых в олимпиаде принимало участие больше всего участников. Выведите номера этих школ в порядке возрастания.
В этой задаче необходимо считывать данные построчно, не сохраняя в памяти данные обо всех участниках, а только подсчитывая число участников для каждой школы.
Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 14 56 Сергеев Петр 23 74 Петров Василий 3 99 Васильев Андрей 3 56 Андреев Роман 14 75 Романов Иван 27 68 |
3 14 |
В условиях предыдущей задачи определите школы, из которых в олимпиаде принимало участие меньше всего участников (но был хотя бы один участник). Выведите номера этих школ в порядке возрастания.
Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 14 56 Сергеев Петр 23 74 Петров Василий 3 99 Васильев Андрей 3 56 Андреев Роман 14 75 Романов Иван 27 68 |
23 27 |
Известно, что фамилии всех участников — различны. Сохраните список всех участников и выведите его, отсортировав по фамилии в лексикографическом порядке. Используйте стандартную функцию сортировки языка.
Программа должна выводить фамилию, имя участника и его балл.
Сложность решения должна быть \(O(n)\) без учета сложности сортировки, где \(n\) — количество участников олимпиады. Решение может использовать \(O(n)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 14 56 Сергеев Петр 23 74 Петров Василий 3 99 Васильев Андрей 3 56 Андреев Роман 14 75 Романов Иван 27 68 |
Андреев Роман 75 Васильев Андрей 56 Иванов Сергей 56 Петров Василий 99 Романов Иван 68 Сергеев Петр 74 |
Отсортируйте список участников олимпиады:
Для сортировки используйте встроенную функцию сортировки.
Выведите список в таком же виде, как в предыдущей задаче.
Сложность решения должна быть \(O(n)\) без учета сложности сортировки, где \(n\) — количество участников олимпиады. Решение может использовать \(O(n)\) памяти.
| Ввод | Вывод |
|---|---|
Иванов Сергей 14 75 Сергеев Петр 23 74 Сергеев Андрей 3 99 Петров Василий 3 99 Иванов Роман 14 75 Иванов Иван 27 76 |
Петров Василий 99 Сергеев Андрей 99 Иванов Иван 76 Иванов Роман 75 Иванов Сергей 75 Сергеев Петр 74 |