В некотором государстве правительство выделяет специальностей для обучения студентов. На эти места претендуют
абитуриентов. Для каждой специальности задано количество мест. Для каждого абитуриента известны его баллы и одна выбранная им специальность. Зачисление осуществляется в одну волну. На направление зачисляются абитуриенты с максимальными баллами. Определите максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и этот средний балл с точностью до двух знаков после запятой.
Входные данные представлены в файле следующим образом. В первой строке через пробел записаны два целых числа и
. В следующих
строках записано по одному числу – количеством мест по каждой специальности. Следующие
строк содержат пары чисел: баллы студента (до 300 включительно) и код выбранной специальности (начиная с 0).
В ответе запишите два числа: максимальный балл поступившего абитуриента на специальность с самым высоким средним баллом и средний балл такой специальности.
f = open("26.txt")
k, n = [int(i) for i in f.readline().split()]
a = [int(f.readline()) for _ in range(k)]
students = []
for _ in range(n):
x, y = [int(i) for i in f.readline().split()]
students.append((y, -x))
students.sort()
res = [[] for _ in range(k)]
for student in students:
if a[student[0]] > 0:
a[student[0]] -= 1
res[student[0]].append(-student[1])
average_score = 0
maxk = 0
for i in range(k):
if len(res[i]) > 0:
if sum(res[i]) / len(res[i]) > average_score:
average_score = sum(res[i]) / len(res[i])
maxk = max(res[i])
print(maxk, average_score)