ЕГЭ
Информатика
2 сентября 2026
20 минут чтения

Задание 21 ЕГЭ по информатике: дерево игры и выигрышная стратегия

Задание 21 ЕГЭ по информатике (КЕГЭ) — самое сложное задание блока «теория игр». За него дают 1 первичный балл, оно относится к высокому уровню сложности, а по обобщённому плану ФИПИ на него отводится примерно 10 минут — больше, чем на любое другое задание из первой половины работы. Ответ — целое число. Условие игры задание не повторяет: оно продолжает задания 19 и 20 общим стимулом. В статье — полная теория построения дерева игры, формальные определения позиций, рабочий Python-решатель с рекурсией и мемоизацией сразу для всех трёх заданий блока и три разбора реальных заданий из открытого банка ФИПИ с проверенными ответами. Потренироваться можно на реальных заданиях 21 ЕГЭ по информатике онлайн — с мгновенной проверкой ответа.

Что проверяет задание 21 ЕГЭ по информатике

Задания 19, 20 и 21 — единственный на КЕГЭ блок с общим условием. Условие игры целиком приводится один раз, в задании 19; задания 20 и 21 своей копии условия не имеют и начинаются словами «Для игры, описанной выше…», то есть для той же самой игры, что и в задании 19. Все три задания стоят по 1 баллу и проверяют разные умения на одном и том же материале:

Все числовые факты об экзамене в этой статье взяты по спецификации ФИПИ 2026 года; проекты КИМ-2027 ФИПИ публикует в конце августа 2026 года, а структура работы не менялась с 2025 года.

ПараметрЗначение
Максимальный балл1 первичный (частичного зачёта нет: только полное совпадение с эталоном)
Уровень сложностиВысокий (В) — одно из пяти заданий этого уровня во всей работе
КЭС2.15 — тот же элемент содержания, что и у заданий 19 и 20
Код требования2.1
Форма ответаКраткий: одно целое число
Файл к заданиюНет, специализированное ПО не требуется
Примерное время выполнения10 минут (обобщённый план варианта КИМ, СПЕЦ-2027)
Связанные заданияЗадание 19 (то же условие игры, существование ситуации) и задание 20 (то же условие, стратегия Пети вторым ходом)

Тренируйтесь на реальных заданиях банка ФИПИ

Задания 21 ЕГЭ по информатике с мгновенной проверкой ответа. Решаем, ошибаемся, разбираем — бесплатно.

Как выглядит формулировка

Условие игры (общее для 19, 20 и 21) описывает камни в кучах и два возможных хода. Вот формулировка из реального задания открытого банка ФИПИ:

От варианта к варианту меняются: количество куч (одна или две), начальные значения, порог окончания игры (сумма или произведение камней в кучах) и формулировка задания 21 всегда одна и та же — «выиграть первым ИЛИ вторым ходом, но НЕ гарантированно первым». Ответ — одно целое число, записывается без пробелов и других символов. Если условию удовлетворяет несколько значений S, в ответ идёт наименьшее — эту фразу в конце формулировки пропускать нельзя.

Теория: всё, что нужно для задания 21

Почему это задание высокого уровня: выигрывает ВТОРОЙ игрок

В заданиях 19 и 20 выигрышную стратегию ищут для Пети — того, кто ходит первым. Задание 21 переворачивает роль: стратегию нужно построить для Вани, второго игрока. Из-за этого меняется порядок кванторов «существует» / «для любого», а вместе с ним — и вся логика решения.

Стратегия Пети (задание 20) устроена так: Петя один раз выбирает свой первый ход, а дальше должен победить для любого ответа Вани. Формально: «\exists ход Пети такой, что \forall ход Вани Петя выигрывает вторым ходом».

Стратегия Вани (задание 21) устроена наоборот: Ваня не выбирает, с чего начнётся игра, — первый ход уже сделал Петя, и он мог сделать любой из своих ходов. Ваня должен победить, каким бы ни был этот первый ход. Формально: «\forall ход Пети \exists ход Вани такой, что Ваня побеждает». Квантор «для любого» стоит первым и относится к сопернику, а не к самому Ване — это и есть источник дополнительной сложности.

Добавьте к этому, что выигрыш нужно получить не «когда-нибудь потом», а строго в один из двух конкретных моментов — на первом или на втором ходу Вани, — и кванторная конструкция становится трёхэтажной: «для любого хода Пети существует ход Вани, такой что либо игра заканчивается сразу, либо для любого ответного хода Пети существует завершающий ход Вани». Именно эта вложенность кванторов и делает задание 21 заданием высокого уровня, а не технической разницей в арифметике.

Второе условие задания — «у Вани НЕТ стратегии выиграть гарантированно первым ходом» — добавляет проверку в обратную сторону: нужно убедиться, что хотя бы один ответ Пети не даёт Ване закончить игру сразу, иначе задача превращается в задание 19 и берётся не то значение S.

Строгая разметка позиций: П1, В1, П2, В2

Чтобы не путаться в дереве игры, каждой позиции удобно присвоить метку — чей сейчас ход и который он по счёту:

  • П1 — начальная позиция, из неё делает свой первый ход Петя.
  • В1 — позиция после первого хода Пети, из неё делает свой первый ход Ваня.
  • П2 — позиция после первого хода Вани, из неё делает свой второй ход Петя.
  • В2 — позиция после второго хода Пети, из неё делает свой второй ход Ваня.

Формальные определения через кванторы

Позиция называется терминальной, если сумма камней в ней уже не меньше порога T. Как только терминальная позиция получена, игра заканчивается и выигрывает тот, кто сделал последний ход, — новых ходов из терминальной позиции не делает никто.

«Ваня выигрывает не позднее чем своим k-м ходом из позиции X» (запишем это как W(X,k)W(X, k)) определяется рекурсивно:

  • W(X,k)W(X, k) истинно, если существует ход Вани из X, ведущий сразу в терминальную позицию (Ваня побеждает немедленно) — тогда k может быть любым, хоть 1;
  • иначе, при k2k \ge 2, W(X,k)W(X, k) истинно, если существует «неторопливый» ход Вани в позицию Y (нетерминальную), такой что для любого ответного хода Пети из Y в позицию Z верно: Z не терминальна (иначе выиграл бы Петя) и W(Z,k1)W(Z, k - 1) истинно;
  • во всех остальных случаях W(X,k)W(X, k) ложно.

Условие задания 21 через эту запись выглядит компактно. Обозначим начальную позицию П1 буквой I. Тогда нужное S — то, для которого:

(ход Пети IВ1) W(В1,2)и(ход Пети IВ1) ¬W(В1,1)\Big(\forall\, \text{ход Пети } I \to \text{В1}\Big)\ W(\text{В1},\, 2) \quad\text{и}\quad \Big(\exists\, \text{ход Пети } I \to \text{В1}\Big)\ \lnot W(\text{В1},\, 1)

Первая половина — это «у Вани есть стратегия выиграть первым или вторым ходом при любой игре Пети». Вторая половина — это «у Вани нет стратегии выиграть гарантированно первым ходом»: достаточно, чтобы хотя бы один ход Пети не позволял Ване закрыть партию сразу же.

Как построить и прочитать полное дерево игры

Дерево игры строится слой за слоем: корень — позиция П1, дальше каждый слой — все возможные ходы того игрока, чья очередь. Правило построения простое: из каждой позиции проведите по одной ветке на каждый допустимый ход (обычно их две — «+1» и «×2», а если куч несколько, то по два варианта на каждую кучу). Позицию с суммой (или произведением, смотря какое у игры условие окончания) не меньше порога T дальше не разворачивайте — она терминальна, партия в ней уже закончена.

Разберём мини-игру с одной кучей на маленьких числах — правила те же, что и в задании 21, только порог маленький, чтобы дерево уместилось целиком. Порог T=11T = 11, в куче S=3S = 3 камня, ход — «+1» или «×2»:

  • П1: 3 — ход Пети.
    • Петя играет «+1» → В1: 4 (не терминал, Ваня не может закончить: 4+1=5, 4×2=8, оба меньше 11).
      • Ваня играет «+1» → П2: 5 (не терминал).
        • Петя играет «+1» → В2: 6. Ваня завершает: 6×2=12 ≥ 11. Ваня побеждает.
        • Петя играет «×2» → В2: 10. Ваня завершает: 10+1=11 ≥ 11. Ваня побеждает.
        Оба ответа Пети из позиции 5 дают Ване выигрыш вторым ходом — ветка «Ваня играет 5» рабочая.
      • Ваня играет «×2» → П2: 8 (не терминал) — альтернатива, показываем для контраста.
        • Петя играет «+1» → В2: 9. Ваня завершает: 9×2=18 ≥ 11. Ваня побеждает.
        • Петя играет «×2» → 16 ≥ 11 — терминал, и последний ход сделал Петя. Петя побеждает.
        Эта ветка Ваню не спасает: Петя может ответить «×2» и выиграть сам. Значит, из 4 Ваня обязан играть именно 5, а не 8.
    • Петя играет «×2» → В1: 6. Ваня завершает сразу: 6×2=12 ≥ 11. Ваня побеждает первым ходом.

Итог по дереву: что бы ни сыграл Петя первым ходом (4 или 6), у Вани находится ответ, гарантирующий победу не позднее второго хода (для 6 — сразу первым ходом, для 4 — вторым ходом через промежуточную позицию 5). При этом не для любого первого хода Пети Ваня выигрывает немедленно — ветка «Петя играет 4» требует второго хода. Значит, S = 3 при T = 11 одновременно удовлетворяет обоим условиям задания 21: выигрыш не позднее второго хода есть, а гарантии выигрыша ровно первым ходом — нет.

Ход Пети (П1→В1)Ваня выигрывает немедленно?Если нет — ход Вани (В1→П2)Побеждает ли Ваня не позднее 2-го хода?
3 → 4нет4 → 5да (оба ответа Пети из 5 дают Ване финиш)
3 → 6да (6×2=12≥11)да, первым ходом

Именно так и читается дерево на экзамене: сверху вниз по уровням П1 → В1 → П2 → В2, на каждом уровне держим в уме, чей это ход, и на каждом ходе Пети (уровни П1 и П2) проверяем все его варианты, а на каждом ходе Вани (уровни В1 и П2 → В2) достаточно найти один подходящий.

Python-решатель для всего блока 19–21

Дерево вручную удобно строить только для маленьких порогов. На реальных числах ФИПИ (порог 50–150, две кучи по 4 хода в каждой позиции) дерево разрастается быстро, и его перебирают программой — рекурсией с мемоизацией. Ниже код для игры с двумя кучами и порогом по сумме камней (это самый частый вариант условия); для одной кучи или для порога по произведению меняются только функции moves\text{moves} и is_final\text{is\_final}.

from functools import lru_cache

T = 59

def moves(state):
    a, b = state
    return [(a + 1, b), (a, b + 1), (2 * a, b), (a, 2 * b)]

@lru_cache(maxsize=None)
def is_final(state):
    return sum(state) >= T

@lru_cache(maxsize=None)
def can_finish_now(state):
    return any(is_final(nxt) for nxt in moves(state))

@lru_cache(maxsize=None)
def wins_in_le(state, k):
    if k <= 0:
        return False
    if can_finish_now(state):
        return True
    if k == 1:
        return False
    for my_move in moves(state):
        if is_final(my_move):
            continue
        if all(
            not is_final(reply) and wins_in_le(reply, k - 1)
            for reply in moves(my_move)
        ):
            return True
    return False

def opponent_finishes_after_any_reply(state):
    for reply in moves(state):
        if is_final(reply):
            return False
        if not can_finish_now(reply):
            return False
    return True

Функция wins_in_le(state, k)\text{wins\_in\_le(state, k)} — это прямая запись рекурсивного определения W(X,k)W(X, k) из предыдущего блока: «существует ход, завершающий игру сразу, а если нет — существует ход в нетерминальную позицию, такой что для ЛЮБОГО ответа соперника (сам нетерминальный) удаётся выиграть не позднее k1k-1 следующих ходов». Три конкретных задания блока — это три способа применить одни и те же функции к позиции П1:

def task19(a0, s_max):
    for S in range(1, s_max + 1):
        I = (a0, S)
        if is_final(I):
            continue
        if any(not is_final(p1) and can_finish_now(p1) for p1 in moves(I)):
            return S
    return None

def task20(a0, s_max):
    found = []
    for S in range(1, s_max + 1):
        I = (a0, S)
        if is_final(I):
            continue
        if any(is_final(p1) for p1 in moves(I)):
            continue
        if any(opponent_finishes_after_any_reply(p1) for p1 in moves(I)):
            found.append(S)
        if len(found) == 2:
            break
    return found

def task21(a0, s_max):
    found = []
    for S in range(1, s_max + 1):
        I = (a0, S)
        if is_final(I):
            continue
        p1_list = moves(I)
        if any(is_final(p1) for p1 in p1_list):
            continue
        if not all(wins_in_le(p1, 2) for p1 in p1_list):
            continue
        if not any(not wins_in_le(p1, 1) for p1 in p1_list):
            continue
        found.append(S)
    return found

print(task19(5, 53))
print(task20(5, 53))
print(task21(5, 53))

Запуск на данных реального задания (пять камней в первой куче, порог 59, 1S531 \le S \le 53) даёт task19=14\text{task19} = 14, task20=[24,26]\text{task20} = [24, 26] и task21=[23,25]\text{task21} = [23, 25] — то есть 23 как наименьшее значение для задания 21. Все три числа совпадают с эталонами открытого банка ФИПИ для этого варианта.

Как проверить ответ вручную, не полагаясь только на код

Программа быстро находит число, но на экзамене компьютера с Python не будет — задание 21 всё же решается на черновике рассуждением, а не перебором всех S от 1 до 53. Проверка вручную для конкретного кандидата S строится в три шага.

  1. Выпишите все ходы Пети из начальной позиции (обычно их четыре: «+1» к каждой куче и «×2» для каждой кучи). Для каждого сразу отбросьте те, что уже завершают игру, — они дают победу Пете и автоматически проваливают всю проверку для этого S.
  2. Для каждого оставшегося хода Пети проверьте, может ли Ваня закончить партию одним ходом (прибавьте 1 к каждой куче и удвойте каждую кучу — хотя бы один результат должен достичь порога). Если да — эта ветка Пети закрыта на первом ходу Вани, дальше её не разворачивайте.
  3. Для веток, не закрытых на первом ходу, повторите тот же перебор ещё на один уровень глубже: переберите ходы Вани, а для каждого — ВСЕ ответы Пети, и для каждого такого ответа проверьте, что Ваня снова может закончить партию одним ходом. Если для какого-то хода Вани это верно при любом ответе Пети — ветка закрыта на втором ходу.

Если после этого разбора все ветки Пети закрыты (первым или вторым ходом Вани) — первое условие выполнено. Если хотя бы одна ветка Пети не закрылась на первом ходу Вани — выполнено и второе условие. S, для которого верно и то и другое, и есть решение; если решений несколько, берите наименьшее. На реальных числах ФИПИ полезно сначала прикинуть диапазон S перебором сверху (у больших S Ваня почти всегда выигрывает первым ходом — второе условие не выполняется) и снизу (у маленьких S Петя обычно успевает выиграть сам), а затем сузить поиск до нескольких кандидатов и проверить их руками по описанному алгоритму.

Задание 21 против заданий 19 и 20: не перепутайте условие

ПризнакЗадание 19Задание 20Задание 21
Чью стратегию ищемситуацию для Вани (существование)ПетиВани
За сколько ходов1 ход Ванировно 2-й ход Пети1-й или 2-й ход Вани
Ответодно числодва числа в порядке возрастанияодно число
Уровеньбазовыйповышенныйвысокий

Простое правило: если ищете стратегию Пети — это задание 20; если стратегию Вани и в условии есть слова «первым или вторым ходом» — это задание 21.

Алгоритм решения задания 21

  1. Прочитайте условие игры в задании 19 — задание 21 своей копии условия не имеет. Выпишите: сколько куч, какие в них начальные числа (в том числе для куда какая связана с S), какой порог и что считается порогом — сумма или произведение.
  2. Выпишите все возможные ходы из произвольной позиции — обычно «+1» к каждой куче и «×2» для каждой кучи отдельно.
  3. Для кандидата S постройте позицию П1 и переберите все ходы Пети. Сразу отбросьте S, при котором хотя бы один ход Пети завершает игру, — Петя тогда либо выигрывает сам, либо (что для задания 21 неважно) условие «Ваня выигрывает при любой игре Пети» рушится в этой же ветке.
  4. Для каждой оставшейся ветки Пети проверьте, есть ли у Вани немедленно завершающий ход. Если да для всех веток — это уже условие задания 19, а не 21: такое S нужно исключить из ответа задания 21 (второе условие требует отсутствия гарантии выигрыша ровно первым ходом).
  5. Для веток, не закрытых первым ходом, проверьте второй ход: существует ли ход Вани, после которого при любом ответе Пети у Вани находится завершающий ход.
  6. Проверьте оба условия задания одновременно. Первое: все ветки Пети закрыты не позднее второго хода Вани. Второе: хотя бы одна ветка не закрылась уже на первом ходу.
  7. Переберите S от меньших к большим (или наоборот, если выгоднее) и возьмите наименьшее подходящее. Запишите в ответ одно целое число без пробелов и разделителей.

Доведите разбор игры до автоматизма

Прорешайте несколько вариантов подряд — и структура «для любого хода Пети существует ход Вани» перестанет пугать. Задания 21 ЕГЭ по информатике из банка ФИПИ — на Repet.ai.

Примеры с разбором

Пример 1. Две кучи, порог по сумме

Пример задания

Реальное задание из открытого банка ФИПИ

«Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 59. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было пять камней, во второй куче – S камней; 1S531 \le S \le 53. Для игры, описанной выше, найдите минимальное значение S, при котором одновременно выполняются два условия: у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.»

Пример 2. Одна куча

Пример задания

Реальное задание из открытого банка ФИПИ

«Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень либо увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход. В начальный момент в куче было S камней, 1S281 \le S \le 28. Для игры, описанной выше, найдите значение S, при котором одновременно выполняются два условия: у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Если найдено несколько значений S, в ответе запишите минимальное из них.»

Пример 3. Порог по произведению камней

Пример задания

Реальное задание из открытого банка ФИПИ

«Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. За один ход игрок может добавить в одну из куч один камень либо увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда произведение количеств камней в кучах становится не менее 144. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было два камня, во второй куче — S камней; 1S1411 \le S \le 141. Для игры, описанной выше, найдите минимальное значение S, при котором одновременно выполняются два условия: у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.»

Типичные ошибки

Как задание 21 связано с остальным экзаменом

  • Задание 19 — то же условие игры целиком, вопрос про существование ситуации «Ваня выиграл первым ходом после неудачного хода Пети», базовый уровень.
  • Задание 20 — то же условие, но стратегия ищется для Пети и должна сработать ровно на его втором ходу, повышенный уровень, ответ — два числа.
  • Задания 19–21 — единственный блок КЕГЭ с общим условием; во всех остальных 24 заданиях условие уникально для каждого задания.
  • Оба соседних задания и задание 21 проверяют один и тот же раздел кодификатора — «Теоретические основы информатики» / КЭС 2.15 — но с разной глубиной анализа дерева игры: 19 требует посмотреть на один уровень вперёд, 20 и 21 — на два.

План подготовки

Неделя 1: язык игр и заданий 19–20

Начните с заданий 19 и 20 — они проще и вводят тот же аппарат (ходы, терминальная позиция, «выигрышная стратегия»). Прорешайте 10–15 вариантов 19-го и 20-го заданий, каждый раз явно выписывая все ходы из начальной позиции. Это закладывает базу для 21-го.

Неделя 2: дерево игры и позиции П1/В1/П2/В2

Возьмите 5–7 заданий 21-го типа и для каждого стройте дерево руками на черновике: явно подписывайте у каждого узла метку (П1, В1, П2, В2) и сумму (или произведение). После каждого разбора сверяйте свой ответ с python-решателем из этой статьи — расхождение почти всегда означает пропущенную ветку или неучтённый мгновенный выигрыш соперника.

Неделя 3: скорость и оба варианта условия

Отрабатывайте задания с условием и по сумме, и по произведению камней — они попадаются в банке примерно поровну. Засекайте время: цель — укладываться в 10 минут, отведённые ФИПИ на это задание, оставляя запас на остальные 26 заданий работы.

Неделя 4: смешанный блок 19–21 и пробный экзамен

Решайте задания 19, 20 и 21 подряд для одного и того же варианта — так вы научитесь удерживать в голове общее условие и не путать, какая стратегия и для кого именно нужна в каждом из трёх заданий. Завершите подготовку пробным экзаменом КЕГЭ целиком, чтобы увидеть задание 21 в контексте всей работы.

Проверьте себя на реальных вариантах

Задания 21 ЕГЭ по информатике из открытого банка ФИПИ с мгновенной проверкой ответа — бесплатно на Repet.ai.

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

Часто задаваемые вопросы

Задание 21 — часть блока 19-21 с общим условием игры про камни в кучах. Оно проверяет умение построить полное дерево игры и найти минимальное значение параметра S, при котором у второго игрока (Вани) есть выигрышная стратегия, позволяющая ему победить первым или вторым ходом при любой игре первого игрока (Пети), но нет стратегии, гарантирующей выигрыш ровно первым ходом. Уровень сложности — высокий, код требования 2.1, КЭС 2.15, за верный ответ дают 1 первичный балл.

В заданиях 19 и 20 стратегия ищется для Пети — игрока, который ходит первым и сам выбирает начальный ход. В задании 21 стратегию нужно построить для Вани, второго игрока: он вынужден реагировать на любой из возможных ходов Пети. Порядок кванторов меняется на 'для любого хода Пети существует ход Вани', а сам выигрыш дополнительно ограничен рамками первого или второго хода Вани — такая вложенность условий и относит задание к высокому уровню сложности.

Задание 21 не содержит собственного условия игры: оно начинается словами 'Для игры, описанной выше...' и ссылается на текст задания 19 того же варианта. Прежде чем решать 21-е задание, обязательно прочитайте условие в задании 19 — там указаны число куч, начальные значения и порог окончания игры.

В части вариантов игра заканчивается, когда сумма камней в кучах достигает порога T, в части — когда порога достигает произведение количеств камней. Правила ходов и вся логика построения дерева при этом не меняются, меняется только проверка 'позиция уже терминальна или ещё нет'. Перед решением важно точно определить, какое условие используется в конкретном варианте.

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

Нет: ЕГЭ по информатике сдаётся на компьютере, но интернет и заранее принесённые программы недоступны — код нужно писать в среде программирования во время экзамена, и тратить на это 10 минут, отведённых на задание 21, нерационально. Python-решатель полезен при подготовке дома, чтобы проверять свои ручные разборы, а на экзамене эффективнее решать деревом на черновике.

Забыть проверить, не заканчивает ли игру сам ответный ход Пети. При разборе дерева легко проверить только то, может ли Ваня закончить партию из очередной позиции, и упустить, что один из ходов Пети в эту позицию уже сам достигает порога — тогда выигрывает Петя, а не Ваня, и вся ветка становится непригодной.

По обобщённому плану варианта КИМ (спецификация ЕГЭ по информатике 2027 года) на задание 21 отводится примерно 10 минут — больше, чем на любое другое задание из первой половины работы, что отражает трудоёмкость построения двухуровневого дерева игры.