Задание № 12. Статград 15.12.2022 (решение на Phyton)

Задание № 12. Статград 15.12.2022, вариант ИН2210201

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

НАЧАЛО

ПОКА НЕ нашлось (00)

заменить (012, 30)

ЕСЛИ нашлось (011)

ТО

заменить (011, 20)

заменить (022, 40)

ИНАЧЕ

заменить (01, 10)

заменить (02, 101)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Известно, что исходная строка A содержала ровно два нуля – на первом и на последнем месте, а также по 10 единиц и двоек. После выполнения данной программы получилась строка B, содержащая 7 единиц и 5 двоек. Какое наименьшее количество троек может быть в строке B?

Из анализа работы программы следует, что в исходную строку необходимо положить сочетание цифр 12 и какое-то количество цифр 1 и 2. Порядок имеет значение.

Программа на языке Phyton

for k1 in range(11):

    for k2 in range(11):

        for k3 in range(11):

            s = '0'+k1*'12'+k2*'2'+k3*'1'+'0'

            s1 = s

            while not ('00' in s):

                s = s.replace('012','30')

                if ('011' in s):

                    s = s.replace('011','20')

                    s = s.replace('022','40')

                else:

                    s = s.replace('01','10')

                    s = s.replace('02','101')

            if s1.count('1')==s1.count('2')==10:

                print(s.count('1'),s.count('2'),s.count('3'),s.count('4'),s1,s)

#Ответ: 3 (наименьшее количество троек, которое может быть в строке B)



            


Комментарии