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

