Задание 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\)