ALEXMATH

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

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

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

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

Задание 26. Информатика. ЕГЭ. Основная волна. Резерв. 19.06.2025

Просмотры: 2730
Изменено: 21 августа 2025

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

Определите максимальное число спортсменов с идущими подряд номерами и номер найденной контрольной точки. Если таких групп спортсменов несколько, укажите наименьший номер посещённой группой контрольной точки

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

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

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

Два целых неотрицательных числа: максимальное число спортсменов с идущими подряд номерами, посетивших одну и туже точку, и номер этой точки.

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

\(9\)
\(41 \,\, 3\)
\(43 \,\, 125\)
\(50 \,\, 33\)
\(42 \,\, 125\)
\(42 \,\, 126\)
\(42 \,\, 127\)
\(41 \,\, 125\)
\(50 \,\, 126\)
\(42 \,\, 126\)

Для приведённого примера точку с номером \(125\) посетили три спортсмена с номерами \(41,\) \(42\) и \(43.\) Ответом является пара чисел: \(3 \,\, 125.\)

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

Решение:

Python


fd = open('26_23383.txt')
#fd = open('26.txt')
N = int(fd.readline())
cp = {}
for line in fd:
    n, pt = map(int, line.split())
    if cp.get(pt):
        cp[pt].add(n)
    else:
        cp[pt] = set([n])

arr = []
for pt in cp:
    sportsmen = sorted(list(cp[pt]))
    qmax = 1
    q = 1
    for p1 in range(1, len(sportsmen)):
        if sportsmen[p1] - sportsmen[p1 - 1] > 1:
            qmax = max(qmax, q)
            q = 1
        else:
            q += 1
    qmax = max(qmax, q)
    arr.append((q, -pt))

arr.sort(reverse=True)
print(arr[0][0], -arr[0][1])

Ответ: \(56 \,\, 30113\)

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

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

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

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

Новое видео

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

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

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

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

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