Помогите с решением задачи из ЕГЭ

Kjg

Новичок
Пользователь
Ноя 8, 2021
2
0
1
винда 10
питон 3.9.7
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка
исполнителя при этом не изменяется.

Цикл
ПОКА условие
последовательность команд

КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно).
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

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

НАЧАЛО
ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03)
заменить (01, 30)
заменить (02, 101)
заменить (03, 202)
КОНЕЦ ПОКА
КОНЕЦ

Известно, что исходная строка начиналась с нуля, а далее содержала только единицы, двойки и тройки. После выполнения данной программы получилась строка, содержащая 20 единиц, 10 двоек и 70 троек. Сколько единиц было в исходной строке?


Вот программа которую я надумал. Я еще не очень хорошо знаю пайтон поэтому если написал бред сори. Программа не выводит результат.
Код:
for x in range(100000):
    for y in range(100000):
        for z in range(100000):
            f='0' + '1'*x + '2'*y + '3'*z
            while '01' in f or '02' in f or '03' in f:
                f=f.replace('01', '30', 1)
                f=f.replace('02', '101', 1)
                f=f.replace('03', '202', 1)
            if f.count('1')==20 and f.count('2')==10 and f.count('3')==70:
                print(x)
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 677
479
83
код вставляйте как код, соблюдая отступы, подробнее тут как задать вопрос
 

Kjg

Новичок
Пользователь
Ноя 8, 2021
2
0
1
код вставляйте как код, соблюдая отступы, подробнее тут как задать вопрос
исправил
 

Форум IT Специалистов