ЕГЭ 2027 · Информатика
Задание 17 ЕГЭ по информатике
Что проверяет линия, сколько она стоит, на чём теряют баллы и как решать — по нашим конспектам. В банке 200+ заданий этой линии с разбором.
Аналитика ЕГЭ: №17, №26 (структуры данных для обработки)
- Баллы
- №17 — 1 балл, №26 — 2 балла
- Частота
- в каждом варианте
Частые ловушки
- Один ответ верный, второй нет → теряют 1 из 2 баллов
- Жадный выбор без сортировки даёт неверный минимум/максимум
Совет. Часто нужно отсортировать данные и применить жадность; обязательно проверь оба запрашиваемых числа.
Аналитика ЕГЭ: №17 (массивы и последовательности чисел)
- Баллы
- 1 первичный балл
- Частота
- в каждом варианте
Частые ловушки
- Читают файл не полностью или неверно разбирают строки в числа
- Забывают дополнительное условие (кратность, пара соседних, диапазон)
Совет. Считай все числа в список, затем один проход с накопителями (сумма, максимум, счётчик).
Разборы
Разбор примера
Обработка соседних пар
Посчитать количество пар соседних элементов, дающих чётную сумму.
Показать решение по шагам
- 1.
a = [3, 1, 4, 1, 5, 2] count = 0 for i in range(len(a) - 1): if (a[i] + a[i+1]) % 2 == 0: count += 1 print(count)
Ответ: Считаются пары с чётной суммой за один проход
Разбор примера
Линия 17: полная трассировка по всем девяти парам
Дана последовательность: 12, 7, 9, 24, 15, 3, 8, 21, 5, 40. Определите количество пар, оба элемента которых — нечётные числа, и максимальную из сумм элементов таких пар.
Показать решение по шагам
- 1. Элементов десять, значит соседних пар девять: (12,7), (7,9), (9,24), (24,15), (15,3), (3,8), (8,21), (21,5), (5,40). Проверим их по очереди. Начальное состояние: kolichestvo = 0, maksimum = 0.
- 2. i = 0: пара (12, 7). 12 чётное → условие не выполнено. Счётчики без изменений.
- 3. i = 1: пара (7, 9). Оба нечётные ✔ kolichestvo = 1. Сумма 16, она больше нуля → maksimum = 16.
- 4. i = 2: пара (9, 24). 24 чётное → мимо.
- 5. i = 3: пара (24, 15). 24 чётное → мимо. Обратите внимание: девятка и пятнадцатка сами по себе нечётные, но в паре с чётным соседом они не считаются — условие про пару целиком.
- 6. i = 4: пара (15, 3). Оба нечётные ✔ kolichestvo = 2. Сумма 18 > 16 → maksimum = 18.
- 7. i = 5: пара (3, 8). 8 чётное → мимо.
- 8. i = 6: пара (8, 21). 8 чётное → мимо.
- 9. i = 7: пара (21, 5). Оба нечётные ✔ kolichestvo = 3. Сумма 26 > 18 → maksimum = 26.
- 10. i = 8: пара (5, 40). 40 чётное → мимо. Цикл закончен.
- 11. Ответ: 3 26. Три пары, наибольшая сумма 26.
- 12. Обратите внимание на элемент 15: он входит в две пары — (24,15) и (15,3). Это нормально и предусмотрено условием: пары перекрываются, каждый элемент, кроме крайних, участвует дважды. Попытка «разбить последовательность на непересекающиеся пары» — грубая ошибка, которая уменьшает ответ примерно вдвое.
Ответ: 3 26
Разбор примера
Линия 17: вариант со средним арифметическим
Та же последовательность 12, 7, 9, 24, 15, 3, 8, 21, 5, 40. Определите количество пар, оба элемента которых больше среднего арифметического всех элементов, и максимальную из сумм таких пар.
Показать решение по шагам
- 1.
a = [int(x) for x in open('17.txt')]
sredneye = sum(a) / len(a) # первый проход
kolichestvo = 0 maksimum = 0 for i in range(len(a) - 1): # второй проходx, y = a[i], a[i + 1]
if x > sredneye and y > sredneye: kolichestvo += 1 if x + y > maksimum: maksimum = x + yprint(kolichestvo, maksimum)
- 2. Шаг 1. Первый проход. Сумма: 12 + 7 + 9 + 24 + 15 + 3 + 8 + 21 + 5 + 40 = 144. Элементов десять, значит среднее равно 144 / 10 = 14,4.
- 3. Шаг 2. Отметим, какие элементы больше 14,4: это 24, 15, 21 и 40. Все остальные — 12, 7, 9, 3, 8, 5 — меньше.
- 4. Шаг 3. Второй проход по девяти парам. (12,7) — оба меньше, мимо. (7,9) — мимо. (9,24) — девятка меньше среднего, мимо: условие требует обоих.
- 5. Шаг 4. (24,15) — 24 > 14,4 ✔ и 15 > 14,4 ✔ Пара подходит. kolichestvo = 1, сумма 39 > 0 → maksimum = 39.
- 6. Шаг 5. (15,3) — тройка меньше, мимо. (3,8) — мимо. (8,21) — восьмёрка меньше, мимо. (21,5) — пятёрка меньше, мимо. (5,40) — пятёрка меньше, мимо.
- 7. Шаг 6. Ответ: 1 39.
- 8. Шаг 7. Что было бы при округлении. Если бы среднее посчитали целочисленно,
144 // 10дало бы 14, и элемент 15 всё равно прошёл бы. Но возьмите последовательность со средним 15,7 и элементом 15: при честном делении он не проходит, при округлённом до 15 — сравнение15 > 15тоже ложно, а вот при округлении в большую сторону до 16 ответ изменится. Не округляйте вовсе — тогда и думать не о чем.
Ответ: 1 39
Разбор примера
Ещё одна подстановка: модуль разности делится на 13
Та же последовательность 12, 7, 9, 24, 15, 3, 8, 21, 5, 40. Определите количество пар, модуль разности элементов которых делится на 13 без остатка, и максимальную из сумм таких пар.
Показать решение по шагам
- 1. Меняется ровно одна строка шаблона:
if abs(x - y) % 13 == 0:. Всё остальное — чтение файла, цикл по индексам, два накопителя, печать — остаётся нетронутым. - 2. Выпишем модули разностей по всем девяти парам: |12−7| = 5, |7−9| = 2, |9−24| = 15, |24−15| = 9, |15−3| = 12, |3−8| = 5, |8−21| = 13, |21−5| = 16, |5−40| = 35.
- 3. Делится на 13 ровно одно значение — 13 у пары (8, 21). kolichestvo = 1, сумма 29 → maksimum = 29.
- 4. Ответ: 1 29.
- 5. Почему именно
abs. Разностьx - yбывает отрицательной, а в Python остаток от деления отрицательного числа неотрицателен:-13 % 13даёт 0, и здесь сработало бы. Но-14 % 13даёт 12, а не −1, и на условиях вида «разность делится на k» это не подводит, а вот на условиях вида «разность меньше k» — подводит сразу. Привычка брать модуль там, где в условии написано «модуль разности», избавляет от необходимости каждый раз это проверять. - 6. Проверка нулевой разности: если бы в последовательности оказались два одинаковых соседних числа, модуль разности был бы 0, а ноль делится на 13 без остатка. Такая пара считается — условие не требует, чтобы разность была ненулевой.
Ответ: 1 29
Разбор примера
Сумма чётных и максимум нечётных
Дан список чисел a. Найти сумму чётных элементов и максимальный нечётный.
Показать решение по шагам
- 1.
s = 0 mx = None for x in a: if x % 2 == 0: s += x elif mx is None or x > mx: mx = x print(s, mx) - 2. Накопители заводим до цикла: s собирает сумму чётных, mx — максимум среди нечётных. Значение None означает «подходящих чисел ещё не встречалось».
- 3. Ветка elif срабатывает только для нечётных: если максимума ещё нет или очередное число больше сохранённого, обновляем mx.
- 4. После цикла s — искомая сумма, mx — искомый максимум; оба получены за один проход.
Ответ: s и mx получены за один проход
Уроки по этой линии
- Структуры данных Python: словари и хэш-таблицы, множества, стек и очередь
- Списки и обработка последовательностей — открыт бесплатно
- Чтение чисел из файла и накопители — открыт бесплатно
- Задание 17: числовые последовательности и пары
Потренируй задание 17
Задания этой линии с проверкой и разбором решения — после бесплатной регистрации. Ошибки сами попадут в план повторения.