Задание 24. Информатика. ЕГЭ. Статград. 28.01.2025-1
- Просмотры: 453
- Изменено: 1 февраля 2025
Текстовый файл содержит строку, состоящую из цифр от \(1\) до \(9,\) знаков операций «\(+\)», «\(–\)» и «\(*\)» (сложение, вычитание и умножение) и заглавных латинских букв \(A, \, B, \, C, \, D.\) Назовём правильной суммой строку, которая содержит последовательность из одного или более десятичных чисел, в которой между каждыми двумя соседними числами стоит ровно один знак «\(+\)» или «\(–\)» и нет других знаков. Примеры правильных сумм: «\(23\)», «\(115+6\)», «\(1980+12–123–51+3\)».
Назовём результатом правильной суммы число, которое получится при выполнении записанных в соответствующей строке действий. Например, результат правильной суммы «\(2+3\)» – число \(5,\) а результат правильной суммы «\(1+2–8+3\)» – число \(-2.\)
Найдите в данной строке расположенную непосредственно после буквы \(A\) правильную сумму, содержащую наибольшее число символов, и вычислите её результат. Если несколько правильных сумм содержат одинаковое наибольшее число символов, выберите ту, которая имеет больший результат. В ответе запишите результат найденной суммы. Гарантируется, что ответ не превышает \(2 \cdot 10^9.\)
Решение:
Python
from re import findall
base = ''
s = open(base + '24.txt').readline().strip()
a = findall(r'A[1-9]+(?:[+\-][1-9]+)*', s)
ml = max([len(x) for x in a])
a1 = [x for x in a if len(x) == ml]
print(max(eval(x[1:]) for x in a1))
Ответ: \(127\)