Задание 26
Участники викторины письменно отвечают на 10 вопросов различной сложности. За правильный ответ начисляется от 1 до 5 баллов в зависимости от сложности вопроса. За неверный ответ вычитается от 1 до 5 баллов. Участник может не отвечать на какой-то вопрос, в таком случае баллы за этот вопрос не начисляются. По результатам викторины для каждого участника вычисляются три показателя:
1) сумма – общее количество набранных баллов;
2) плюсы – сумма баллов без учёта неверных ответов;
3) ответы – общее количество сданных ответов (верных и неверных).
В таблице результатов участники располагаются
по убыванию первого показателя – суммы,
при равенстве сумм – по убыванию второго показателя (плюсов),
при равенстве сумм и плюсов – по убыванию третьего показателя (ответов).
При равенстве всех трёх показателей участники располагаются в итоговой таблице в порядке возрастания их личных номеров.
Дальнейший отбор проводится среди тех, кто набрал положительную сумму баллов, участники с нулевой и отрицательной суммой исключаются. В следующий тур проходят участники, занявшие места в первой трети полученной таблицы (учитываются только положительные результаты), а также те, у которых все три показателя такие же, как у занявшего последнее место в первой трети таблицы.
Право участия в дополнительном отборочном туре получают 10 % из тех, кто набрал положительную сумму, но не попал сразу в следующий тур, а также те, у которых все три показателя такие же, как у занявшего последнее место среди этих 10 %.
Определите ID участника, занимающего в таблице первое место среди тех, кто прошёл в дополнительный отборочный тур, а также общее количество участников дополнительного отборочного тура.
Входные данные
Первая строка входного файла содержит целое число N (N ≤ 10 000) – общее количество участников.
Каждая из следующих N строк соответствует одному участнику и содержит 11 целых чисел, разделённых пробелами:
сначала ID участника, затем – баллы, полученные им за каждый из 10 вопросов.
Задание имеет очень объёмное условие. Для реализации надо
- считать данные, вычислить значения от результатов (суммы, плюсы, ответы), отбросить "выбывших"
- отсортировать в нужном порядке
- найти ответы
Задание можно решить в табличном процессоре, но разберем программый способ.
- Считаем данные в словарь.
- Для каждого участника вычислим итоговые характеристики и определим участие в конкурсном отборе. Данные участвующих занесем в новый список в "удобном" порядке.
- Отсортируем список
- Определим ID первого в дополнительном отборе и количество участников дополнительного отбора