Решение: Рейтинговый список студентов
Во время сессии студенты сдают 4 экзамена, за каждый из которых можно получить от 2 до 5 баллов. Студенты, получившие хотя бы одну «двойку», считаются не сдавшими сессию. Сформируйте рейтинговый список: сначала укажите ID сдавших сессию в порядке убывания среднего балла, а при равенстве — в порядке возрастания ID. Затем разместите ID не сдавших: сначала студентов с одной «двойкой», затем с двумя, тремя и четырьмя «двойками»; внутри каждой группы ID располагаются по возрастанию. Повышенную стипендию получают студенты, занявшие первые 25 % мест рейтинга, если у них нет «двоек».
Используйте данные из прилагаемого входного файла. Найдите ID студента, занимающего последнее место среди студентов с повышенной стипендией, и ID первого в рейтинге студента, имеющего более двух «двоек».
Решение по шагам
5 шаговДля каждого студента подсчитываем количество оценок, равных 2, и сумму четырёх оценок.
$$twos_i = \#\{j \mid grade_{ij}=2\},\quad sum_i=\sum_{j=1}^{4}grade_{ij}$$Студенты с нулевым количеством двоек сдали сессию. Их сортируем по убыванию суммы оценок, что эквивалентно сортировке по убыванию среднего балла, а при равенстве — по возрастанию ID.
Студентов с двойками сортируем по возрастанию количества двоек, а при равенстве — по возрастанию ID, после чего дописываем их к списку сдавших.
Последнее место среди получающих повышенную стипендию имеет номер $N/4$, поскольку первые 25 процентов мест составляют $N/4$ позиций.
В готовом рейтинговом списке находим первый элемент, у которого количество двоек больше 2.
Определяется по данным прилагаемого входного файла.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Сортировать сдавших по возрастанию среднего балла вместо убывания.
Сравнивать студентов с одинаковым средним баллом не по ID.
Размещать студентов с двойками только по ID, не учитывая количество двоек.
Искать первого студента с более чем двумя двойками до формирования полного рейтинга.
Использовать округление среднего балла вместо сравнения суммы четырёх оценок.