Задание 26. Информатика. ЕГЭ. Демо-2025

Просмотры: 129
Изменено: 24 ноября 2024

Во время сессии студенты сдают 4 экзамена, за каждый из которых можно получить от 2 до 5 баллов. Студенты, получившие хотя бы одну «двойку», считаются не сдавшими сессию. Результаты сессии публикуются в виде рейтингового списка, в котором сначала указаны идентификационные номера студентов (ID), сдавших сессию, в порядке убывания среднего балла за сессию, а в случае равенства средних баллов – в порядке возрастания ID. Затем располагаются ID студентов, не сдавших сессию: сначала – получивших одну «двойку», затем – две «двойки», потом ID студентов с тремя «двойками» и, наконец, ID студентов, получивших по 2 балла за каждый из экзаменов. Если студенты имеют одинаковое количество «двоек», то их ID в рейтинге располагаются в порядке возрастания.

Повышенную стипендию получают студенты, занявшие в рейтинговом списке первые 25 % мест, при условии отсутствия у них «двоек». Гарантируется, что без «двоек» сессию сдали не менее 25 % студентов.

Найдите ID студента, который занимает последнее место среди студентов с повышенной стипендией, а также ID первого в рейтинговом списке студента, который имеет более двух «двоек».

В ответе запишите два целых положительных числа: сначала ID студента, который занимает последнее место среди студентов с повышенной стипендией, затем ID первого в рейтинговом списке студента, который имеет более двух «двоек».

Входные данные

В первой строке входного файла находится число \(N\), обозначающее количество студентов (целое положительное число, не превышающее \(10~000\)). Каждая из следующих \(N\) строк содержит \(5\) чисел через пробел: ID студента (целое положительное число, не превышающее \(100~000\)) и четыре оценки, полученные им за сессию. Гарантируется, что общее число студентов \(N\) кратно \(4\) и хотя бы один студент имеет более двух «двоек». Во входном файле все ID различны.

Выходные данные

Два натуральных числа: искомые ID студентов в порядке, указанном в условии задачи. Типовой пример организации данных во входном файле

\(8\)
\(4 \, 4 \, 4 \, 4 \, 4\)
\(7 \, 5 \, 5 \, 5 \, 2\)
\(10 \, 3 \, 4 \, 4 \, 5\)
\(1 \, 4 \, 4 \, 4 \, 3\)
\(6 \, 3 \, 5 \, 5 \, 3\)
\(2 \, 2 \, 2 \, 2 \, 2\)
\(13 \, 2 \, 2 \, 2 \, 3\)
\(3 \, 3 \, 3 \, 3 \, 3\)

Файл с данными

Решение:

Python


base = ''
fd = open(base + 'demo_2025_26.txt')
N = int(fd.readline())

stud = []
for line in fd:
    arr = [int(x) for x in line.split()]
    st = {'ID': arr[0],
          'sr_ball': -sum(arr[1:]) if arr.count(2) == 0 else 0,
          'neud': arr.count(2)}
    stud.append(st)

stud.sort(key = lambda x: (x['neud'], x['sr_ball'], x['ID']))
for i in range(N):
    if stud[i]['neud']< 3:
        continue
    id_neud = stud[i]['ID']
    break

print(stud[N // 4 - 1]['ID'], id_neud)

Ответ: \(52326 \,\, 635\)