ex exxam.ru
Задания17 из 27
01 Графы: схема дорог и таблица расстояний 02 Логика: фрагмент таблицы истинности, порядок столбцов 03 Базы данных: поиск информации в связанных таблицах 04 Кодирование: условие Фано и двоичное дерево кода 05 Двоичная запись числа: алгоритм строит новое число 06 Исполнитель Черепаха: движение и подсчёт точек 07 Информационный объём: звук и изображения 08 Подсчёт слов: лексикографический список и перебор 09 Электронные таблицы: подсчёт строк по условию 10 Текстовый документ: поиск сочетаний букв по условию 11 Объём данных: мощность алфавита и кодирование 12 Исполнитель МТ (машина на ленте): чтение программы 13 IP-адреса и маски сетей TCP/IP 14 Арифметические выражения и системы счисления 15 Логика: истинность выражения с отрезками и предикатами 16 Рекурсивные функции: чтение и счёт по формулам 17 Обработка целочисленной информации: поиск пар в файле текущее18 Динамическое программирование: Робот-сборщик монет 19 Игры: выигрышная стратегия первым ходом (куча) 20 Игры: победа Пети своим вторым ходом (куча) 21 Игры: победа Вани первым или вторым ходом (куча) 22 Многопоточные вычисления: максимальное число одновременных процессов 23 Динамика: количество программ исполнителя 24 Обработка символьных строк: поиск подстроки по условию 25 Перебор чисел: делители и сумма M 26 Задание 26 нужны файлы27 Задание 27 нужны файлы
17
1 балл демоверсия ЕГЭ-2026

Обработка целочисленной информации: поиск пар в файле

Задание 17 · Билет 1 · ЕГЭ по информатике

Билет 1 — демоверсия ЕГЭ-2026; остальные билеты — задания в формате экзамена (открытый сборник или тренировочные по образцу). Это тренировочные материалы, а не официальные КИМ. Ответы пересчитаны и сверены.

Условие

В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от 1 до 100000 включительно. Определите количество пар последовательности, в которых только один из элементов является двузначным числом, а сумма элементов пары кратна минимальному двузначному элементу последовательности.

Скачать файл (.txt)

Скачивать не обязательно: если решаете на сайте, данные уже есть в программе. Скачайте, только чтобы посмотреть файл отдельно на компьютере.

Вопрос. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Попробуйте программой

Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.

Решите программой на Python

в браузере

Напишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.

Файл задачи уже в песочнице: task17-1-cisla.txt — читайте через open('task17-1-cisla.txt').

Результат
Здесь появится вывод print().

Разбор задачи

Задание 17 ЕГЭ по информатике — обработка последовательности чисел из файла. Нужно просмотреть все пары двух подряд идущих элементов, отобрать подходящие по условию и записать два числа: их количество и наибольшую (или наименьшую) сумму.

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

Что важно знать

  • Задание базового уровня — оценивается в 1 балл
  • Пара — это два подряд идущих элемента последовательности
  • Порог берётся из самой последовательности: например, минимальный двузначный элемент
  • В ответ идут два числа: количество пар и максимум суммы (иногда по модулю)

План решения

  1. Прочитайте файл и получите список целых чисел
  2. Найдите порог из условия (минимальный подходящий элемент последовательности)
  3. Переберите пары соседних элементов
  4. Отберите пары, где выполнено условие на элементы и сумму
  5. Посчитайте количество и наибольшую (или наименьшую) сумму
  6. Запишите два числа через пробел и проверьте решение на коротком наборе
Не знаешь, как решать?

Потренируйся обрабатывать числа: напиши программу, найди пары по условию и посчитай их количество и сумму.

Открыть тренажёр

Решение

Теория с нуля: что нужно знать
1. О чём задача
В задании 17 дан файл с последовательностью чисел. Нужно просмотреть все пары двух подряд идущих элементов, отобрать те, где выполнено условие, и записать два числа: количество подходящих пар и наибольшую (или наименьшую) сумму. Файл большой — вручную не перебрать, поэтому решают короткой программой.
2. Как читать файл программой
Числа лежат в текстовом файле — по одному в строке или в одну строку. Их читают и получают список целых чисел:
data = [int(x) for x in open("file.txt").read().split()]
Дальше работают с этим списком. Файл задачи уже загружен в песочницу под тем же именем, что и в условии, — откройте его через open(...), скачивать на компьютер не нужно.
3. Пары — только соседние элементы
Пара в этой задаче — два подряд идущих элемента: (data[i], data[i+1]). Удобно пройтись по списку сдвинутыми копиями:
for x, y in zip(data, data[1:]):
Здесь data[1:] — та же последовательность без первого элемента, поэтому пары получаются ровно соседними. Пары из любых двух элементов — это другая задача.
4. Условие на элемент и порог
Порог берут из самой последовательности. В демоверсии это минимальный двузначный элемент:
m = min(x for x in data if 10 <= x <= 99)
В открытом варианте — минимальный положительный элемент, кратный 123:
m = min(x for x in data if x > 0 and x % 123 == 0)
Условие «ровно один элемент двузначный» проверяют суммой булевых значений: (10 <= x <= 99) + (10 <= y <= 99) == 1. Кратность — остатком от деления: (x + y) % m == 0.
5. Что записать в ответ
В ответ идут два числа через пробел: сначала количество подходящих пар, затем сумма. В демоверсии — максимальная сумма, в открытом варианте — абсолютное значение максимума. Если наибольшая сумма отрицательна, берут её модуль.

Решение

открыто шагов: 4 из 4
1 Шаг 1
Подход. Читаем файл в список чисел, находим минимальный двузначный элемент — это порог. Перебираем пары соседних элементов: подходит пара, где ровно один элемент двузначный и сумма кратна порогу. Считаем количество и наибольшую сумму.
2 Шаг 2
Порог — минимальный двузначный элемент последовательности: m = 10.
3 Шаг 3
Короткая программа читает файл task17-1-cisla.txt (он уже в песочнице): находит порог, перебирает соседние пары и печатает два числа. Готовый код — в разделе решения, его можно вставить в песочницу кнопкой.
4 Шаг 4
Перебор даёт count = 150 и максимум суммы 9930, то есть ответ 150 9930.

Программа, которая находит ответ:

data = [int(x) for x in open('task17-1-cisla.txt').read().split()]   # читаем файл

m = min(x for x in data if 10 <= x <= 99)   # минимальный двузначный элемент

cnt = 0   # число подходящих пар
mx = 0    # максимальная сумма
for x, y in zip(data, data[1:]):                 # перебираем соседние пары
    one_two = (10 <= x <= 99) + (10 <= y <= 99)   # сколько элементов двузначны
    if one_two == 1 and (x + y) % m == 0:         # ровно один и сумма кратна m
        cnt += 1
        mx = max(mx, x + y)
print(cnt, mx)   # выводим ответ

Правильный ответ этого билета: 150 9930
Проверка: эталон демоверсии ФИПИ-2026 — 150 9930; независимый пересчёт по прилагаемому файлу даёт то же (минимальный двузначный элемент — 10).

Проверка

Типовые ошибки и проверка
  • Считают пары из любых двух элементов, а не только подряд идущих.
  • Берут фиксированный порог, а не минимальный элемент последовательности по условию.
  • Путают «ровно один двузначный» с «есть двузначный»: подходит пара, где двузначен строго один элемент.
  • Забывают про абсолютное значение, когда максимальная сумма отрицательна.
  • Проверка: прогоните решение на коротком наборе вручную, затем сверьте количество и сумму на полном файле.

Режимы

Сейчас открыт режим обучения: теория, разбор и ответ видны. Скоро появится режим проверки — только условие и поле ответа, без подсказок.

Практикум Все задания Режим проверки — скоро

Частые вопросы

Что проверяет задание 17 ЕГЭ по информатике?
Умение обрабатывать последовательность чисел из файла: просматривать соседние пары, отбирать их по условию задачи и находить количество и сумму (максимум или минимум).
Что такое пара в задании 17?
Это два подряд идущих элемента последовательности. В программе их удобно перебирать так: for x, y in zip(data, data[1:]). Пары из любых двух элементов — это другая задача.
Откуда берётся порог в условии?
Порог — это элемент самой последовательности: в демоверсии это минимальный двузначный элемент, в другом варианте — минимальный положительный элемент, кратный заданному числу. Его находят отдельным проходом по списку.
Почему ответ из двух чисел?
В ответ идут количество найденных пар, а затем максимум (или абсолютное значение максимума) суммы этих пар — например, 150 9930.
Можно ли потренировать задание 17?
Да. Практикум собирает короткие последовательности: нужно написать программу в песочнице Python, проверить вывод с эталоном и разобрать решение по шагам.