Задание 12. Информатика. ЕГЭ. Шастин. 9.2.2025

Просмотры: 420
Изменено: 10 февраля 2025

(Л. Шастин) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах \(v\) и \(w\) обозначают цепочки цифр.

А) заменить (v, w)

Эта команда заменяет в строке первое слева вхождение цепочки \(v\) на цепочку \(w\). Например, выполнение программы заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки \(v\), то выполнение команды заменить (u, v) не меняет эту строку.

Б) нашлось (v)

Эта команда проверяет, встречается ли цепочка \(v\) в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не меняется.

Дана программа для редактора:

НАЧАЛО
ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>0)
   ЕСЛИ нашлось (>1)
      ТО заменить (>1,  22>)
   КОНЕЦ ЕСЛИ
   ЕСЛИ нашлось (>2)
      ТО заменить (>2,  2>)
   КОНЕЦ ЕСЛИ
   ЕСЛИ нашлось (>0)
      ТО заменить (>0,  1>)
   КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

На вход приведённой выше программе поступает строка, начинающаяся с символа «\(Ю\)», а затем содержащая \(19\) цифр «\(0\)», \(n\) цифр «\(1\)» (\(6 < n < 100\)) и \(19\) цифр «\(2\)». Определите наименьшее значение \(n\), при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы, оканчивается на две одинаковые цифры.

Решение:

Легко заметить, что результат выполнения программы не зависит от взаимного расположения цифр в строке.

Python


for n in range(7, 100):
    s = '>' + '0' * 19 + '1' * n + '2' * 19
    while any(ch in s for ch in ('>1', '>2', '>0')):
        if '>1' in s:
            s = s.replace('>1', '22>', 1)
        if '>2' in s:
            s = s.replace('>2', '2>', 1)
        if '>0' in s:
            s = s.replace('>0', '1>', 1)
    dsum = str(s.count('1') + 2 * s.count('2'))
    if dsum[-2] == dsum[-1]:
        print(n)
        break

Ответ: \(19\)