Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение
Если в строке нет вхождений
Б) нашлось (v).
Эта команда проверяет, встречается ли
исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно).
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Дана программа для редактора:
НАЧАЛО
ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03)
заменить (01, 30)
заменить (02, 101)
заменить (03, 202)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка начиналась с нуля, а далее содержала только единицы, двойки и тройки. После выполнения данной программы получилась строка, содержащая
Заметим, что порядок цифр в исходной строке не важен.
Заметим, что после преобразования исходной строки получилась строка, содержащая
Поскольку строка после выполнения также должна содержать
Тогда, чтобы получившаяся строка содержала
Ответ: 50.
Приведём другое решение Бучнева Никиты на языке Python.
for x in range(60):
for y in range(60):
for z in range(60):
s='0'+x*'1'+y*'2'+z*'3'
while '01' in s or '02' in s or '03' in s:
s=s.replace('01','30',1)
s=s.replace('02','101',1)
s=s.replace('03','202',1)
if s.count('1')==20 and s.count('2')==10 and s.count('3')==70:
print(x)

