Участники викторины письменно отвечают на 10 вопросов различной сложности. За правильный ответ начисляется от 1 до 5 баллов в зависимости от сложности вопроса. За неверный ответ вычитается от 1 до 5 баллов. Участник может не отвечать на какой-то вопрос, в таком случае баллы за этот вопрос не начисляются.
По результатам викторины для каждого участника вычисляются три показателя:
1) сумма — общее количество набранных баллов;
2) плюсы — сумма баллов без учёта неверных ответов;
3) ответы — общее количество сданных ответов (верных и неверных).
В таблице результатов участники располагаются по убыванию первого показателя — суммы, при равенстве сумм — по убыванию второго показателя (плюсов), при равенстве сумм и плюсов — по убыванию третьего показателя (ответов). При равенстве всех трёх показателей участники располагаются в итоговой таблице в порядке возрастания их личных номеров.
В следующий тур проходят участники, занявшие места в первой четверти итоговой таблицы, а также те, у которых все три показателя такие же, как у занявшего последнее место в первой четверти таблицы.
Определите ID участника, занимающего в таблице первое место среди тех, кто не прошёл в следующий тур, а также количество участников, у которых все три показателя такие же, как у участника, занявшего в итоговой таблице 1700 место (включая самого этого участника).
Входные данные:
Первая строка входного файла содержит целое число N — общее количество участников. Каждая из следующих N строк соответствует одному участнику и содержит 11 целых чисел, разделённых пробелами: сначала ID участника, затем — баллы, полученные им за каждый из 10 вопросов.
Гарантируется, что ID участников не повторяются.
В ответе запишите два целых числа: сначала требуемый ID, затем требуемое количество.
Откроем файл в программе Excel.
Назовем столбцы номерами задач. Также добавим названия трех столбцов: сумма, плюсы и ответы.
Выделим все столбы и сделаем настраиваемую сортировку.
Нас интересуют участники, занявшие места в первой четверти итоговой таблицы. Так как участников 9588, нас интересуют строки до 2397. Также нас интересуют участники, у которых все три показателя такие же, как у занявшего последнее место в первой четверти таблицы.
ID участника, занимающего в таблице первое место среди тех, кто не прошёл в следующий тур - 1525.
Определим количество участников, у которых все три показателя такие же, как у участника, занявшего в итоговой таблице 1700 место (включая самого этого участника)
Таких участников 6.
Ответ: 1525&6.
Приведём решение Юрия Красильникова на языке Python.
a = [list(map(int,s.split())) for s in open('26.txt')][1:]
b = [x + [sum(x[1:]),sum(t for t in x[1:] if t > 0),len([t for t in x[1:] if t != 0])] for x in a]
b.sort(key = lambda x: x[0])
b.sort(key = lambda x: x[11:],reverse = True)
n = len(b) // 4 - 1
t = b[n][11:]
while b[n][11:] == t: n += 1
t = b[1699][11:]
r = [x for x in b if x[11:] == t]
print(b[n][0],len(r))

