ALEXMATH

Информатика. ЕГЭ

Задания для подготовки

Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников

Перейти к заданиям

Задание 26. Информатика. ЕГЭ. ЕГКР. 19.04.2025

Просмотры: 1618
Изменено: 8 мая 2025

В банке дистанционной проверяющей системы имеется более \(100~000\) заданий. Все задачи пронумерованы начиная с единицы. Эти задания в течение учебного периода решают участники различных курсов. Каждому студенту при регистрации присваивается уникальный идентификатор — натуральное число, не превышающее \(1~000~000.\) Студент может сдать несколько различных правильных решений одной задачи, при этом в зачёт идёт только одно из них.

Преподаватель сделал выгрузку результатов за некоторый период времени и выбрал студента, который решил наибольшее количество задач из банка через одну (одну решил, следующую нет и т.д.).

Определите идентификационный номер студента, который решил наибольшее количество задач через одну, и количество решённых им задач. Если несколько студентов решили одинаковое максимальное количество задач, то укажите студента с наименьшим идентификационным номером.

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

В первой строке входного файла находится число \(N\) — количество зачтённых решений (натуральное число, не превышающее \(60~000)\) за некоторый период времени. Каждая из следующих \(N\) строк содержит два натуральных числа, не превышающих \(1~000~000:\) идентификатор студента и номер правильно решённой задачи.

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

Два целых неотрицательных числа: наименьший идентификационный номер студента и наибольшее количество успешно решённых задач через одну.

Типовой пример организации входных данных

\(9\)
\(40 \,\, 3\)
\(60 \,\, 33\)
\(60 \,\, 33\)
\(50 \,\, 124\)
\(50 \,\, 126\)
\(50 \,\, 128\)
\(40 \,\, 4\)
\(50 \,\, 72\)
\(50 \,\, 126\)

Для приведённого примера студент с идентификационным номером \(50\) решил наибольшее количество задач через одну \((3\) задачи). Ответом является пара чисел: \(50 \, 3.\)

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

Решение:

Python


fd = open('26.txt')
N = int(fd.readline())
students = {}

for _ in range(N):
    id, problem = map(int, fd.readline().split())
    if students.get(id):
        students[id].add(problem)
    else:
        students[id] = {problem}

stud_prob = []
for id in students.keys():
    pr = sorted(list(students[id]))
    m = 1
    p = 0
    while p < len(pr) - 1:
        p1 = p + 1
        while p1 < len(pr) and pr[p1] - pr[p1-1] == 2:
            p1 += 1
        m = max(m, p1 - p)
        p = p1

    stud_prob.append((m, -id))
stud_prob.sort(reverse=True)
print(-stud_prob[0][1], stud_prob[0][0])

Ответ: \(10135 \,\, 42\)

Обсуждение задания

Здесь пока нет ни одного комментария. Будьте первым!

kege1
kege2
kege3
Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене.

Новое видео

Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»

Поддержать автора сайта!

Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.

Совершая донат, вы соглашаетесь с Условиями использования

Расписание пробников Статграда в 2026/27 учебном году