Форум » Выполнение и анализ алгоритмов для исполнителей » Задача 12.273 (Джобс) » Ответить

Задача 12.273 (Джобс)

aln1947: Используя рассуждения наблюдателя Винниковой в теме "12.272-Джобс", я в похожей задаче 12.273 соединил рассуждение и программу: Из условия задачи следует, что наибольшая сумма получится при преобразовании '32' в '61' из 5 получится 7. При преобразовании '42' в '51' из 6 получится опять 6, поэтому расположение пары '42' не влияет на общую сумму. Поскольку порядок символов заранее неизвестен, расставим символы так, чтобы получить максимальную сумму: s = '32'*15 +'42'*5 +'4'*5. Получилась программа: [pre2] s = '32'*15 +'42'*5 +'4'*5 while '42' in s or '32' in s: if '42' in s: s = s.replace('42', '51', 1) else: s = s.replace('32', '61', 1) print('Конечная строка = ',s) #sum = 0 #x = s Sum_c = sum(map(lambda x:int(x) if x.isdigit() else 0,s)) print('Максимальная сумма цифр в конечной строке =', Sum_c ) .[/pre2] Ответ: 155

Ответов - 1

Винникова: aln1947 Спасибо)) А я эту задачу решила просто: # Длина цепочки не меняется # 42 -> 51 сумму не меняет # 32 -> 61 сумма на 2 увеличивается # двоек 20, троек 15, четверок 10. # Пар "32" максимум может быть 15, значит сумма максимум может увеличиться на 15*2=30 # Сумма была 2*20+3*15+4*10=125, +30=155 # Ответ 155



полная версия страницы