Задание 24. Информатика. ЕГЭ. Статград. 17.12.2024
- Просмотры: 356
- Изменено: 18 января 2025
Текстовый файл состоит из цифр от \(1\) до \(9,\) знаков операций «\(+\)» «\(-\)» и «\({*}\)» (сложение, вычитание и умножение) и заглавных латинских букв \(A,\) \(B,\) \(C,\) \(D.\) Назовём правильной суммой строку, содержащую последовательность из одного или более десятичных чисел, в которой между соседними числами стоит ровно один знак «\(+\)» и нет других знаков.
Примеры правильных сумм: «\(23\)», «\(115+6\)», «\(1980+12+12351\)». Назовём результатом правильной суммы число, которое получится при выполнении записанных в соответствующей строке сложений. Например, результат правильной суммы «\(2+3\)» – число \(5.\)
Найдите в данной строке правильную сумму, расположенную непосредственно после буквы \(A\) и имеющую наибольший результат. В ответе запишите результат найденной суммы. Гарантируется, что ответ не превышает \(2 \cdot 10^9.\)
Решение:
Python
from re import findall
base = ''
s = open(base + '24.txt').readline().strip()
a = list(findall(r'A[1-9]+(?:\+[1-9]+)*', s))
max_sum = 0
for x in a:
if '+' not in x:
max_sum = max(max_sum, int(x[1:]))
else:
max_sum = max(max_sum, sum(int(z) for z in x[1:].split('+')))
print(max_sum)
Ответ: \(67622777\)