N абитуриентов поступают на некое направление на М мест. Абитуриенты сдали ЕГЭ по трем экзаменам: русскому языку, профильной математике, физики и/или информатике. В зачет идет 3 экзамена. Если сданы и физика, и информатика, то в зачет идёт максимальный балл из двух предметов. Часть выпускников еще не подала оригиналы документов, что отмечено в исходных данных первым полем (0 либо 1). Необходимо определить гарантированно проходной балл.
Входные данные: в первой строке N – кол-во выпускников, M – кол-во мест на направление и далее N строк для каждого абитуриента, в которых первое число 0/1 (отсутствие/наличие оригиналов документов) и далее 3 или 4 оценки: баллы по русскому, профилю, физике и/или информатике.
Выходные данные: проходной балл с учетом наличия оригиналов документов (на момент запроса); проходной балл без учета наличия оригиналов документов (верхняя оценка). Числа в ответе запишите через пробел.
f = open(’С:/26_14.txt’)
# n — кол-во абитуриентов, m — кол-во мест на направлении
n,m=map(int, f.readline().split())
# Список с данными об общем балле и наличии оригиналов у каждого абитуриента
a=[]
for i in range(n):
p,r,ma,*fi=map(int,f.readline().split())
a.append((r+ma+max(fi),p))
a.sort(reverse=True)
orig = [] # Список абитуриентов с учётом наличия оригиналов
bez = [] # Список без учёта наличия оригиналов
for i in range(len(a)):
bez.append(a[i][0])
# Если оригиналы есть, то добавляем в соответствующий список
if a[i][1] == 1:
orig.append(a[i][0])
orig.sort(reverse=True)
bez.sort(reverse=True)
# Те же списки, но в них добавляем с учётом ограничения по местам
a1 = []
a2 = []
for i in range(m):
a2.append(bez[i])
if i < len(orig):
a1.append(orig[i])
else:
a1.append(bez[len(orig) - i])
print(min(a1), min(a2))