Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
заменить (v, w)
нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для Редактора:
|
1 2 3 4 5 6 7 |
НАЧАЛО ПОКА нашлось (11) ЕСЛИ нашлось(112) ТО заменить (112, 7) ИНАЧЕ заменить (11, 3) КОНЕЦ ПОКА КОНЕЦ |
Исходная строка содержит 12 единиц и 4 двойки, других цифр нет, точный порядок расположения цифр неизвестен. Какую наибольшую сумму цифр может иметь строка, которая получится после выполнения программы?
Ответ:
«Некрыловские варианты» от Евгения Джобса — Вариант 6
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from itertools import product m=0 for i in product('12', repeat=16): s = ''.join(i) if s.count('1')==12 and s.count('2')==4: while '11' in s: if '112' in s: s=s.replace('112','7',1) else: s=s.replace('11','3',1) sm = 0 for i in range(len(s)): sm+=int(s[i]) m = max(m, sm) print(m) |
Ответ: 34