2026/27, 9КЛ-2, Python: Работа с файлами + задачи на подсчёт (часть3)

N: Школы, в которых есть победители олимпиады

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

Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 80
Сергеев Петр 26 70
Сергеев Андрей 35 80
Петров Василий 13 80
Иванов Роман 35 70
Иванов Иван 26 70
13 35

O: Школы с высоким средним баллом

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

Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 45
Сергеев Петр 13 45
Сергеев Андрей 20 55
Петров Василий 20 55
Иванов Роман 70 40
Иванов Иван 70 60
20

P: Школы с наибольшим средним баллом

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

Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 45
Сергеев Петр 13 45
Сергеев Андрей 20 55
Петров Василий 20 55
Иванов Роман 70 40
Иванов Иван 70 60
20

Q: Список школ упорядоченный по числу участников

В условиях предыдущей задачи выведите номера школ, из которых был хотя бы один участник олимпиады, в порядке убывания количества участников олимпиады из этих школ. Если из двух школ было одинаковое число участников, то их номера выводятся в порядке возрастания номера школы.

Решение должно иметь сложность \(O(n + k)\) (без учета сложности сортировки списка), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 45
Сергеев Петр 70 45
Сергеев Андрей 20 55
Петров Василий 14 55
Иванов Роман 13 40
Иванов Иван 70 60
13 70 14 20

R: Список школ упорядоченный по среднему баллу участников

В условиях предыдущей задачи выведите номера школ, из которых был хотя бы один участник олимпиады, в порядке убывания среднего балла участников олимпиады из этих школ. Если для двух школ средний балл участников совпадает, то их номера выводятся в порядке возрастания номера школы.

Решение должно иметь сложность \(O(n + k)\) (без учета сложности сортировки списка), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 45
Сергеев Петр 13 45
Сергеев Андрей 20 55
Петров Василий 20 55
Иванов Роман 70 40
Иванов Иван 70 60
20 70 13

S: Школы с наибольшим числом победителей

В условиях предыдущей задачи выведите в порядке возрастания номера школ, из которых наибольшее количество участников стало победителями олимпиады. В этой задаче значение числа баллов одного участника может быть до \(10^6\).

Решение должно иметь сложность \(O(n + k)\), где \(n\) — общее количество участников олимпиады, \(k\) — количество школ. Решение должно использовать \(O(k)\) памяти.

Пример

ВводВывод
Иванов Сергей 13 70
Сергеев Петр 13 60
Сергеев Андрей 20 70
Петров Василий 20 70
Иванов Роман 70 60
Иванов Иван 70 60
20