Исполнитель Редактор получает на вход строку цифр и преобразует её.
Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды
заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
Дана программа для редактора:
НАЧАЛО
ПОКА НЕ нашлось (00)
заменить (02, 20)
заменить (03, 30)
заменить (011, 1031)
заменить (01, 102)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка содержала ровно два нуля – на первом и на последнем месте, а после выполнения данной программы получилась строка, содержащая 17 единиц, 25 двоек и 4 тройки. Какое наибольшее количество двоек могло быть в исходной строке?