Разбор демоверсии ЕГЭ по информатике 2027 — все 27 заданий с ответами
Подробный разбор демоверсии ЕГЭ по информатике 2027 от ФИПИ: условие, метод и ответ по каждому из 27 заданий, код для заданий с файлами, сверка с ключами ФИПИ, порядок прохождения варианта по минутам спецификации.
Демоверсия ЕГЭ по информатике 2027 опубликована ФИПИ в августе 2026 года. Структура прежняя — 27 заданий, 29 первичных баллов, 235 минут, — но темы заданий 10, 13 и 23 новые, ответ 27 записывается одной строкой, а в заданиях 5, 16, 19–21, 22, 26 и 27 демоверсия спрашивает иначе, чем в 2026 году. Ниже разобраны все 27 заданий: условие своими словами, метод, ответ по ключу ФИПИ и код там, где без него не обойтись. Для заданий с файлами ответы получены запуском кода на файлах из архива ФИПИ.
Что именно изменилось относительно прошлого года — в обзоре ЕГЭ по информатике 2027: что изменилось; разбор демоверсии 2026 года остаётся в блоге.
Структура варианта и ответы
| № | Тема | Уровень | Минут | Ответ ФИПИ |
|---|---|---|---|---|
| 1 | Граф и таблица дорог | Б | 3 | 26 |
| 2 | Фрагмент таблицы истинности | Б | 3 | yxzw |
| 3 | База данных в файле | Б | 3 | 1630 |
| 4 | Условие Фано | Б | 2 | 17 |
| 5 | Алгоритм над двоичной записью | Б | 4 | 100 |
| 6 | Черепаха | Б | 4 | 483 |
| 7 | Объём звука | Б | 5 | 18375 |
| 8 | Комбинаторика слов | Б | 4 | 3914 |
| 9 | Электронная таблица | Б | 6 | 4874 |
| 10 | Маска подсети | Б | 3 | 516 |
| 11 | Объём информации | П | 3 | 8 |
| 12 | Машина Тьюринга | П | 6 | 4073 |
| 13 | Исполнитель, количество программ | П | 7 | 16 |
| 14 | Системы счисления (три примера) | П | 3 | 276296118; 10; 2029 |
| 15 | Логика с ДЕЛ | П | 3 | 88 |
| 16 | Рекуррентные выражения | П | 5 | 9241591 |
| 17 | Пары в последовательности | П | 13 | 622 174933 |
| 18 | Робот и угловые клетки | П | 8 | 2598 803 |
| 19 | Игра: выигрыш Вани первым ходом | Б | 5 | 29 |
| 20 | Игра: выигрыш Пети вторым ходом | П | 7 | 28 48 |
| 21 | Игра: стратегия Вани за два хода | В | 10 | 44 |
| 22 | Процессы на 7-й мс | П | 7 | 8 |
| 23 | Граф из файла | П | 12 | 10971 |
| 24 | Строка в файле | В | 18 | 154 |
| 25 | Целые числа (два примера) | В | 20 | таблицы |
| 26 | Журнал сервера | В | 35 | 7040 52204 |
| 27 | Частицы и кластеры | В | 36 | 539936 100704 |
Разбор каждого задания
Задание 1 — граф и таблица дорог
На рисунке схема дорог между шестью пунктами с буквенными обозначениями, в таблице — длины дорог между пронумерованными пунктами; нумерация и буквы не связаны. Нужна сумма длин дорог из E в A и из B в C.
Метод: по таблице выписать степени вершин — сколько непустых клеток в строке. В таблице демо у пунктов 2 и 6 по две дороги, у пунктов 1, 3, 4 и 5 — по три (всего восемь дорог). На рисунке степени считаются по числу линий у вершины: две вершины с двумя дорогами сопоставляются с пунктами 2 и 6, остальные уточняются по соседству — если две вершины на рисунке соединены, в таблице на пересечении их номеров должно стоять число. После сопоставления длины дорог E–A и B–C читаются из таблицы: это дороги 2–3 (21 км) и 4–6 (5 км). Ответ ФИПИ — 26.
Главная ошибка здесь — считать, что номер 1 в таблице и буква A на рисунке как-то связаны: условие прямо говорит, что нумерация и буквы независимы. Разбор типа и тренировочные задачи — в статье о задании 1.
Задание 2 — фрагмент таблицы истинности
Функция ((x ≡ ¬y) → ¬(w → x)) ∨ ¬z, фрагмент из трёх различных строк с пустыми клетками, во всех строках F = 0. Из F = 0 следует z = 1, x ≠ y и не бывает «w = 1 при x = 0». Столбец без нулей — z, дальше две кандидатуры, и условие различных строк оставляет одну. Ответ — yxzw; без условия различных строк подошёл бы ещё xyzw. Разбор с кодом — Задание 2 ЕГЭ 2027.
Задание 3 — база данных «Кондитерские изделия»
Три таблицы: «Движение товаров» (операции поступления и продажи по дням), «Товар» (артикул, отдел, название, единица, количество в упаковке, цена) и «Магазин» (район, адрес). Нужна общая масса всех видов зефира, полученного магазинами на Прибрежной улице с 5 по 19 июня включительно.
Метод: в таблице «Товар» четыре артикула с «Зефир» в названии, упаковки по 250, 800, 500 и 1000 граммов; в таблице «Магазин» два магазина на Прибрежной — M9 и M11; в движении товаров оставить операции «Поступление» по этим магазинам и артикулам с 5 по 19 июня — их 17 — и сложить упаковки, умноженные на граммы в упаковке. Получается 1 630 000 г. Ответ — 1630.
В Calc это три шага: в таблицу движения товаров подтянуть через ВПР название товара и адрес магазина, отфильтровать строки по «Зефир», «Прибрежная», «Поступление» и дате, посчитать СУММПРОИЗВ упаковок на граммы в упаковке. На Python — ключевой фрагмент, когда три листа уже выгружены в текст:
# Фрагмент: operations — строки листа «Движение товаров», выгруженного из таблицы в текст;
# zefir: артикул -> граммов в упаковке; shops: ID магазинов на Прибрежной
total = 0
for op_id, date, shop, article, packs, kind in operations:
day, month, year = date.split(".")
if kind == "Поступление" and shop in shops and article in zefir:
if month == "06" and 5 <= int(day) <= 19:
total += int(packs) * zefir[article]
print(total / 1000) # 1630.0
В самом .ods дата — ячейка типа «дата», и в Calc её сравнивают как дату. При выгрузке в текст она придёт строкой в том виде, в каком показана в таблице, например «05.06.2025», — тогда день и месяц сравнивают после разбиения по точке, а не как текст. Единица измерения у зефира — граммы, в ответ просят килограммы. Разбор типа — задание 3.
Задание 4 — условие Фано
Буквы Б, К, Л, О, Н; известны коды Б — 00, Н — 010, Л — 111. Нужно минимальное число двоичных знаков для слова КОЛОБОК.
Метод: свободные коды, не начинающиеся с известных, — 10, 011 и 110. Самый короткий, 10, отдаём букве, которая встречается чаще: О входит трижды, К — дважды. Длина: К 2 × 3 + О 3 × 2 + Л 3 + Б 2 = 17. Разбор типа — задание 4.
Задание 5 — алгоритм над двоичной записью
По N строится R: чётному N дописывают по две единицы с обеих сторон, нечётному — единицу слева и два нуля справа. Наименьшее R, превышающее 95.
Метод: перебор N с min по подходящим R, без break: R не растёт вместе с N. Первый по порядку N результат больше 95 — 115 при N = 4, а наименьший — 100 при N = 9. Разбор — Задание 5 ЕГЭ 2027.
Задание 6 — Черепаха
Два прямоугольника: первый — «Повтори 6 [Вперёд 24 Направо 90 Вперёд 30 Направо 90]» от начала координат, второй — после «Поднять хвост, Вперёд 2, Направо 90, Вперёд 10, Налево 90» — «Повтори 6 [Вперёд 75 Направо 90 Вперёд 71 Направо 90]». Нужно число целочисленных точек в пересечении, включая границу.
Метод: первый прямоугольник занимает x от 0 до 30 и y от 0 до 24; после переноса Черепаха стоит в точке (10, 2), второй прямоугольник — x от 10 до 81, y от 2 до 77. Пересечение: x от 10 до 30, y от 2 до 24 — это 21 × 23 = 483 точки.
| Фигура | x | y | Откуда |
|---|---|---|---|
| Первый прямоугольник | 0…30 | 0…24 | старт в (0, 0), голова вверх: Вперёд 24 — вверх, после поворота Вперёд 30 — вправо |
| Переход | — | — | Вперёд 2 вверх, Направо 90, Вперёд 10 вправо, Налево 90: Черепаха в (10, 2), голова вверх |
| Второй прямоугольник | 10…81 | 2…77 | Вперёд 75 вверх, Вперёд 71 вправо |
| Пересечение | 10…30 | 2…24 | 21 целых значений x, 23 — y |
Один повтор рисует половину прямоугольника, так что «Повтори 6» обходит его трижды — на фигуру это не влияет, а вот направление головы после шести повторов остаётся исходным (каждый повтор поворачивает на 180°, шесть повторов — на 1080°, то есть на три полных оборота), и это важно для переноса. Разбор типа — задание 6.
Задание 7 — объём звука
Стерео, 32 000 Гц, 16 бит, 2 минуты 27 секунд. Объём: 32 000 × 16 × 2 × 147 = 150 528 000 бит = 18 816 000 байт = 18375 Кбайт. Разбор типа — задание 7.
Задание 8 — комбинаторика слов
Пятибуквенные слова из А, К, Ц, Е, Н, Т в алфавитном порядке. Нужен номер первого слова с чётным номером, которое не начинается с А, Е, К и содержит хотя бы одну Т.
Метод: перебор по порядку. Слова на А, Е и К занимают первые 3 × 6⁴ = 3888 номеров; дальше идут слова на Н, и первое с буквой Т и чётным номером — НААТЕ.
from itertools import product
letters = sorted("АКЦЕНТ") # А Е К Н Т Ц
number = 0
for word in product(letters, repeat=5):
number += 1
if number % 2 == 0 and word[0] not in "АЕК" and "Т" in word:
print(number, "".join(word)) # 3914 НААТЕ
break
Ответ — 3914. Разбор типа — задание 8.
Задание 9 — электронная таблица
В каждой строке пять натуральных чисел. Сколько строк, где все числа различны и удвоенная сумма максимального и минимального больше суммы остальных трёх. В файле 28 000 строк; условие проверяется формулой в Calc или циклом на Python. Для Python выдели строки в таблице, скопируй и вставь в текстовый файл 9.txt — столбцы разделятся табуляцией:
count = 0
for line in open("9.txt"): # строки листа, скопированные из таблицы в текстовый файл
row = [int(x) for x in line.split()]
if len(row) != 5: # пустые строки и заголовок пропускаем
continue
if len(set(row)) == 5:
big, small = max(row), min(row)
if 2 * (big + small) > sum(row) - big - small:
count += 1
print(count) # 4874
В Calc то же: в шестом столбце формула вида =ЕСЛИ(И(СЧЁТЕСЛИ(A1:E1;A1)=1; …; 2*(МАКС(A1:E1)+МИН(A1:E1))>СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1));1;0), растянутая на все строки, и сумма столбца. Ответ — 4874. Разбор типа — задание 9.
Задание 10 — маска подсети
Адрес 192.168.159.86, маска 255.255.252.0, в ответ — сумма октетов адреса сети. Смешанный октет: 159 AND 252 = 156, адрес сети 192.168.156.0, сумма 516. Разбор — Задание 10 ЕГЭ 2027.
Задание 11 — объём информации
Серийный номер из 157 символов, 12 450 номеров в не более чем 955 Кбайт, посимвольное кодирование минимальным числом бит, на номер — целое число байт. На номер приходится не больше 955 × 1024 / 12 450 ≈ 78,55 байта, значит 78 байт = 624 бита, на символ — 624 / 157 ≈ 3,97, то есть 3 бита. Мощность алфавита — 2³ = 8. Разбор типа — задание 11.
Задание 12 — Машина Тьюринга
На ленте двоичная запись 2025, головка справа от неё. Программа в состоянии q0 сдвигается влево на число и переходит в q1; в q1 идёт влево, не меняя нулей и единиц, а встретив пустую ячейку, пишет 1 и переходит в q2, где останавливается. Итог: слева к записи приписана единица.
| Состояние | Символ | Команда | Что происходит |
|---|---|---|---|
| q0 | λ | λ, L, q1 | головка стоит справа от числа, шаг влево на последнюю цифру |
| q1 | 0 | 0, L, q1 | цифра не меняется, шаг влево |
| q1 | 1 | 1, L, q1 | цифра не меняется, шаг влево |
| q1 | λ | 1, L, q2 | слева от числа записана единица |
| q2 | λ | λ, S, q2 | остановка |
2025 = 11111101001₂ — одиннадцать разрядов; единица слева добавляет 2¹¹ = 2048. Ответ — 4073. Проверка: int("1" + bin(2025)[2:], 2) даёт то же число. Разбор типа — задание 12.
Задание 13 — исполнитель и количество программ
Команды «прибавь 1» и «поменяй местами две младшие цифры» (только если цифра десятков меньше цифры единиц). Сколько программ из 100 в 141. Динамика вперёд: dp[y] += dp[x] для каждой применимой команды; в 141 приходят из 140 (14 программ) и из 114 перестановкой (2 программы). Ответ — 16. Разбор — Задание 13 ЕГЭ 2027.
Задание 14 — системы счисления, три примера
Демоверсия даёт три варианта через «ИЛИ» — на экзамене будет один.
Пример 1. 27x98876₂₂ + 26x51₂₂ + 711x5₂₂, x — цифра 22-ричной системы; наименьшее x, при котором сумма кратна 21, и частное. Перебор x от 0 до 21 с int(строка, 22): подходит x = 3, частное 276296118.
Пример 2. Значение 3 · 3125⁸ + 2 · 625⁷ − 4 · 625⁶ + 3 · 125⁵ − 2 · 25⁴ − 2025 записали в системе с основанием 25; сколько в записи значащих нулей. Посчитать число и перевести в 25-ричную запись функцией деления с остатком: нулей 10.
Пример 3. 7¹⁷⁰ + 7¹⁰⁰ − x, x от 1 до 2030; наибольшее x, при котором в 7-ричной записи ровно 71 нуль. Перебор x с переводом в семеричную систему: 2029.
def to_base(n, b):
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s = ""
while n:
s = digits[n % b] + s
n //= b
return s
best = None
for x in range(1, 2031):
if to_base(7**170 + 7**100 - x, 7).count("0") == 71:
best = x
print(best) # 2029
Разбор типа — задание 14.
Задание 15 — логика с ДЕЛ
ДЕЛ(x, A) ∨ ((x ∈ [70; 90]) → ¬ДЕЛ(x, 22)) истинно при всех натуральных x; наибольшее A. Выражение ложно, только когда x на отрезке, делится на 22 и не делится на A. На отрезке [70; 90] на 22 делится только 88, значит A обязано делить 88, и наибольшее такое A — 88. Перебор A с проверкой всех x до 2000 даёт то же. Разбор типа — задание 15.
Задание 16 — рекуррентные выражения
F(1) = 1, F(n) = n × F(n − 1); значение (F(3038) + 5 × F(3037)) / F(3036). Сокращение факториалов: 3037 × (3038 + 5) = 3037 × 3043 = 9241591. На Python — таблица до 3038 и деление двумя косыми чертами. Разбор — Задание 16 ЕГЭ 2027.
Задание 17 — пары в последовательности
Файл из 10 000 чисел от 1 до 100 000. Пара — два подряд идущих элемента. Нужны пары, где остаток от деления на 33 хотя бы одного элемента равен минимальному элементу последовательности; в ответ — количество и наибольшая сумма.
a = [int(line) for line in open("demo_17.txt")]
m = min(a) # 8
count = 0
best = 0
for i in range(len(a) - 1):
if a[i] % 33 == m or a[i + 1] % 33 == m:
count += 1
best = max(best, a[i] + a[i + 1])
print(count, best) # 622 174933
Минимальный элемент — 8. Ответ — 622 174933. Разбор типа — задание 17.
Задание 18 — Робот и угловые клетки
Один лист 20 × 20, стены — утолщённые границы ячеек, Робот ходит вправо и вниз и останавливается в любой клетке, где справа и снизу стена. Угловых клеток четыре; наибольшая итоговая сумма 2598, наименьшая 803 — и обе не в правом нижнем углу, где 2553 и 1162. Ответ — 2598 803. Разбор с кодом чтения границ — Задание 18 ЕГЭ 2027.
Задания 19–21 — две кучи камней
Ходы: +4 к одной куче или удвоить одну кучу; конец при сумме 133 и больше; первая куча 17, вторая S.
- 19. Наименьшее S, при котором Ваня выиграл первым ходом: при S = 29 Петя может сходить в (17, 58), и Ваня удваивает до 133. Ответ 29.
- 20. Два наименьших S, при которых Петя выигрывает вторым ходом и не может первым: 28 48; выигрышные первые ходы Пети — (17, 56) и (34, 48).
- 21. Наименьшее S, при котором Ваня выигрывает первым или вторым ходом, но не гарантированно первым: 44.
Одна функция win(p, k) на кортежах решает все три. Разбор — Задания 19–21 ЕГЭ 2027.
Задание 22 — процессы на 7-й миллисекунде
Таблица из 25 процессов, нуль у независимых, зависимости вперемешку; сколько процессов выполняются на 7-й мс. Расписание проходами while, миллисекунды с единицы: на 7-й мс идут 8 процессов. Разбор — Задание 22 ЕГЭ 2027.
Задание 23 — граф из файла
200 рёбер, 50 вершин, веса вещественные; целая часть длины кратчайшего пути из 1 в 100. Рекурсия с кешем: ноль на конечной вершине, минимум по рёбрам из «вес плюс путь из соседа», g.get(v, []) для тупиков. Ответ — 10971; различных путей в этом графе 2 033 652 335. Разбор — Задание 23 ЕГЭ 2027.
Задание 24 — строка в файле
Файл из десяти миллионов символов: цифры 0, 6, 7, 8, 9 и знаки «−» и «*». Нужна максимальная длина непрерывной подстроки, которая является корректным арифметическим выражением: знаки не стоят рядом, числа без ведущих нулей, выражение начинается и заканчивается числом.
Метод: разбить строку на числа и знаки, число с ведущим нулём разбить на «0» и остаток (между ними выражение рвётся), затем пройти по токенам, накапливая длину чередующейся последовательности «число, знак, число, …» и запоминая максимум на каждом числе.
import re
s = open("demo_24.txt").read().strip()
tokens = []
for t in re.findall(r"\d+|[-*]", s):
if t.isdigit() and len(t) > 1 and t[0] == "0":
tokens.append("0") # «0» — число, дальше запись рвётся
rest = t.lstrip("0")
tokens.extend(["0"] * (len(t) - len(rest) - 1))
if rest:
tokens.append(rest)
else:
tokens.append(t)
best = 0
length = 0
prev = None # что было последним: число или знак
for t in tokens:
is_num = t.isdigit()
if is_num and prev != "num":
length = length + len(t) if prev == "op" else len(t)
prev = "num"
best = max(best, length)
elif not is_num and prev == "num":
length += 1
prev = "op"
elif is_num: # два числа подряд — новая цепочка
length = len(t)
prev = "num"
best = max(best, length)
else: # два знака подряд — обрыв
length = 0
prev = None
print(best) # 154
Два знака подряд обрывают цепочку, два числа подряд (после «0», отделённого от ведущих нулей) начинают новую. Ответ — 154. Разбор типа — задание 24.
Задание 25 — целые числа, два примера
Пример 1. Числа больше 1 103 285 717, представимые произведением ровно двух простых, каждый из которых ровно один раз содержит «16». Для числа ищут наименьший делитель p, проверяют простоту частного и подстроку «16» в обоих. Первые пять:
| Число | Наименьший множитель |
|---|---|
| 1103299319 | 1693 |
| 1103309477 | 1693 |
| 1103322107 | 16187 |
| 1103323021 | 1693 |
| 1103328547 | 3169 |
Пример 2. Числа до 10¹⁰ по маске 3?12?145, делящиеся на 1917, и частные. Перебор цифр на местах «?» и от нуля до двух цифр на месте «» — числа не длиннее десяти цифр, а восемь позиций маски заняты:
| Число | Частное |
|---|---|
| 351261495 | 183235 |
| 3212614035 | 1675855 |
| 3412614645 | 1780185 |
| 3712414275 | 1936575 |
| 3912414885 | 2040905 |
Разбор типа — задание 25.
Задание 26 — журнал сервера
15 001 запись, вместимость раздела 26 107 Кбайт. Копия создаётся, когда запрос не помещается, и равна накопленному до него. Клиент с наибольшим объёмом — 7040 (303 454 Кбайт); копий за сутки 1072, до 11:59:59 — 534, сумма двух наибольших до отсечки — 52 204. Ответ — 7040 52204; без отсечки было бы 52 205. Разбор — Задание 26 ЕГЭ 2027.
Задание 27 — частицы и кластеры
2604 частицы; энергия E = m(Vx² + Vy²)/2; кластеры по энергии с R = 2,0 — после сортировки и разреза их четыре (501, 601, 701 и 801 частиц); центр — наименьшая сумма модулей разностей энергий. Q1 — наибольшее расстояние между частицами одного кластера с признаком II, Q2 — наибольшая энергия центра. Ответ одной строкой — 539936 100704. Разбор — Задание 27 ЕГЭ 2027.
Ловушки демоверсии
| Задание | Ловушка | Что делать |
|---|---|---|
| 2 | без условия «строки различны» два ответа | проверять, что трём строкам соответствуют три разных набора |
| 5 | первый R > 95 при переборе N — это 115, а не 100 | min по всем подходящим R, без break |
| 13 | команда B применима не ко всем числам | условие применимости внутри moves |
| 16 | одна косая черта даёт 9241591.0 | делить двумя косыми чертами |
| 18 | в правом нижнем углу 2553 и 1162 вместо 2598 и 803 | перебрать все угловые клетки |
| 19 | «известно, что Ваня выиграл» — это any, не all | читать формулировку буквально |
| 22 | процесс занимает мс с begin + 1 по finish | миллисекунды с единицы |
| 23 | тупики, недостижимые вершины, ребро из конца наружу (в типовом примере условия; в файле демо их нет) | g.get(v, []), проверка конца первой строкой |
| 26 | копия вместе с новым запросом даёт 57094, без отсечки — 52205 | копия до записи запроса, отсечка строкой |
| 27 | цепочка по порогу склеивает кластеры | сортировка и разрез, проверка числа кластеров |
Как проходить вариант
Спецификация отводит на задания 1–15 суммарно 59 минут, на 16–23 — 67, на 24–27 — 109. Разумный порядок — три прохода:
- Задания 1–15. Без файлов или с короткими файлами, базовые и повышенные. Цель — час и пятнадцать ответов. Если 1, 3 или 9 не идут, не застревай: по три минуты на каждое по спецификации.
- Задания 16–23. Здесь шаблоны: таблица для 16,
winдля 19–21, расписание для 22, рекурсия с кешем для 23. Час. - Задания 24–27. Самые дорогие по времени и по баллам: 26 и 27 стоят по два. Спецификация отводит на них 109 минут — почти половину экзамена, поэтому сюда нужно прийти с запасом, близким к этой цифре, и с проверенными на типовых примерах шаблонами.
Общая стратегия распределения времени и баллов — в статье Как набрать 90+ баллов; что брать с собой и как устроен экзамен — в чек-листе на КЕГЭ; как первичные баллы становятся тестовыми — в статье о баллах для вузов.
Короткий итог
Демоверсия 2027 — 27 заданий: три сменили тему (10, 13 и 23), в 27 изменилась запись ответа, в 5, 16, 19–21, 22, 26 и 27 вопрос или сюжет другой, чем в демо 2026, и требует другого приёма; задания 2 и 18 сохранили форму 2026 года, а у остальных темы и приёмы прежние, хотя конкретные вопросы, как и каждый год, другие. Все ответы выше совпадают с ключами ФИПИ; для заданий с файлами они получены кодом, который приведён в статьях по номерам. Решать демо на время, сверять с ключами и закрывать провалы по разборам — самый короткий путь к экзамену 2027 года.
Все задания демоверсии и ещё сотни в тех же формах с автопроверкой есть в TuteMe.