Задания
Версия для печати и копирования в MS Word
Тип 24 № 73879
i

Тек­сто­вый файл со­сто­ит из цифр от 1 до 9, зна­ков опе­ра­ций «+», «–» и «*» (сло­же­ние, вы­чи­та­ние и умно­же­ние) и за­глав­ных ла­тин­ских букв A, B, C, D.

Назовём пра­виль­ной сум­мой стро­ку, со­дер­жа­щую по­сле­до­ва­тель­ность из од­но­го или более де­ся­тич­ных чисел, в ко­то­рой между со­сед­ни­ми чис­ла­ми стоит ровно один знак «+» и нет дру­гих зна­ков.

При­ме­ры пра­виль­ных сумм: «23», «115+6», «1980+12+12351».

Назовём ре­зуль­та­том пра­виль­ной суммы число, ко­то­рое по­лу­чит­ся при вы­пол­не­нии за­пи­сан­ных в со­от­вет­ству­ю­щей стро­ке сло­же­ний. На­при­мер, ре­зуль­тат пра­виль­ной суммы «2+3»  — число 5.

Най­ди­те в дан­ной стро­ке пра­виль­ную сумму, рас­по­ло­жен­ную не­по­сред­ствен­но после буквы D и име­ю­щую наи­боль­ший ре­зуль­тат.

В от­ве­те за­пи­ши­те ре­зуль­тат най­ден­ной суммы. Га­ран­ти­ру­ет­ся, что ответ не пре­вы­ша­ет 2 · 109.

За­да­ние 24

Спрятать решение

Ре­ше­ние.

##При­ведём ре­ше­ние на языке Python.

from re import *

s = list(findall(r'D[1-9]+(?:\+[1-9]+)*', open('25.txt').readline()))

maxi = 0

for i in s:

if '+' not in i:

maxi = max(maxi, int(i[1:]))

else:

maxi = max(maxi, sum(int(x) for x in i[1:].split('+')))

print(maxi)

 

 

Ответ: 633197952.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

import re

s = re.findall(r'D[1-9]+(?:[+\-][1-9]+)*', open('24.txt').readline())

print(max([eval(x[1:]) for x in s]))