Задачи из демоверсии 2026 года по информатике с сайта ФИПИ.


sdgfjh


seghfj


asdghfj


Решение данного задания будет выполнено при помощи старого рекурсивного алгоритма Тигра (вроде так помню никнейм).


План решения:

Написать шаблон программы.

Расписать условия задачи.

Проанализировать вывод результатов работы программы.


Начну с простого понимания того, что код универсален для любых задач 19-21

Единственное, что нужно помнить! Задачи не уровня ЕГЭ, а чуть сложнее требуют всегда доработки!


В нашем случае задача стандартного уровня ЕГЭ.

Показываю стандартную последовательность решения.

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


Пункт №1 - Написать шаблон (болванку) программы. Даже не читая задание.))

Открываем Python, пишем код.

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

У нас одна куча камней.

sgfgjh


Распишу с комментариями код - программистов прошу смотреть сквозь пальцы))


def f(a, c, m):
'''
a - количество камней в куче (если куч две, то добавляем еще и переменную b),
c - количество совершенных ходов,
m - номер игрока (1 - первый ход Пети, 2 - первый ход Вани,
                  3 - второй ход Пети, 4 - второй ход Вани)
'''
    if :
        return c % 2 == m % 2
    '''
        запомнить! (простое тождество)
    '''
    if c == m:
        return 0
    '''
        запомнить! (избавились от лишнего дубля)
    '''
    h = []
    '''
        список заполняется вызовом функции с совершенными ходами
    '''
    if (c + 1) % 2 == m % 2:
        '''
        запомнить! (простое тождество)
        '''
        return any(h)
        '''
        запомнить! (any - если хотя-бы один элемент True, то список вернет True
        '''
    else:
        return all(h)
        '''
        запомнить! (all - вернется True только тогда, когда все элементы списка True)
        важное отступление: если в условии игры №19 Петя совершает ошибочный ход, то
        этот all заменяется на any, то есть для плохой игры два any
        '''

for a in range():
    '''
        диапазон из условия
    '''
    for m in range(1, 5):
        '''
        стандатный диапазон проверки двух ходов (от 1 до 4 включительно)
        '''
        if f(a, 0, m) == 1:
            '''
            не забудьте! переменная "с" - всегда сначала равна 0
            '''
            print(a, m)
            '''
            выводим количество камней и игрока, который с этих камней победит
            '''
            break
            '''
            избавляемся от дублирующих выводов
            '''
        

Теперь заполним нашу болванку данными из задачи.

sdgcghgf


Вывод прикреплю в виде кода


========== RESTART: C:/Users/Администратор/Desktop/Кулавский/19-21.py ==========
31 1
32 1
33 1
34 1
35 1
36 1
37 1
38 1
39 1
40 1
41 1
42 1
43 1
44 1
45 1
46 1
47 1
48 1
49 1
50 1
51 1
52 1
53 1
54 1
55 1
56 1
57 1
58 1
59 1
60 1
61 1
62 1
63 1
64 1
65 1
66 1
67 1
68 1
69 1
70 1
71 1
72 1
73 1
74 1
75 1
76 1
77 1
78 1
79 1
80 1
81 1
82 1
83 1
84 1
85 1
86 1
87 1
88 1
89 1
90 1
91 1
92 1
93 1
94 1
95 1
96 1
97 1
98 1
99 1
100 1
101 1
102 1
103 1
104 1
105 1
106 1
107 1
108 1
109 1
110 1
111 1
112 1
113 1
114 1
115 1
116 1
117 1
118 1
119 1
120 1
121 1
122 1
123 1
124 2
125 2
126 2
127 3
128 3
129 3
130 3
131 3
132 4
133 4
134 4
496 3
497 3
498 3
499 3
500 3
501 3
502 3
503 3
504 3
505 3
506 3
507 3
508 4
509 4
510 4

В принципе, задача решена.

Останется только посмотреть ответы) и всё))


Начнем с вопроса на задание № 19

Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. 

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

Первый ход Вани - это m = 2

Значит в выводе ищем минимальную запись с двойкой справа.

Скриншот части вывода

ывеаег

Сразу видно - это 124


Задача № 20

Найдите два наименьших значения S,  при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия: – Петя не может выиграть за один ход; – Петя может выиграть своим вторым ходом независимо от того,  как будет ходить Ваня. 
Найденные значения запишите в ответе в порядке возрастания.

Данная формулировка говорит о том, что гарантированно Петя выиграет своим вторых ходом, значит m = 3.

Ищем два значения наименьших, рядом с которыми цифра 3.

ывеаег

Это 127 и 128


Задача № 21

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

Здесь мы видим, что Ваня гарантированно выиграет своим вторым ходом, значит m = 4.

Ищем наименьшее, рядом с которым цифра 4.

ывеаег

Ответ 132.


Итог и напутствия.

Посмотрите разборы Алексея Михайловича Кабанова, особенно разборы 2022 года, это невероятно крутые видео, в которых можно посмотреть, как он разбирает разные типы задач этим кодом (немного усовершенствованной версией)

Также важно практиковаться!

Если не будет практики, то номера 19-21 вместо решения за максимум 10 минут будете делать все 25(

А то минус эффективность, минус время...

Всем добра!

Last modified: Friday, 31 October 2025, 10:19 AM