17. Числовые последовательности: #297014
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от $-10,000$ до $10,000$ включительно.
Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на $3$, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Будем рассматривать все пары соседних элементов последовательности. Пусть элементы пары — $x$ и $y$.
По условию хотя бы одно из двух чисел должно делиться на $3$. Значит, пара подходит, если выполняется условие: $x\bmod3=0$ или $y\bmod3=0$.
Если пара подходит, увеличиваем количество найденных пар и вычисляем сумму её элементов: $x+y$.
Одновременно среди всех подходящих пар запоминаем максимальную сумму.
После перебора всей последовательности получаем $2802$ подходящие пары.
Максимальная сумма равна $1990$. Она получается для соседних элементов $1000$ и $990$.
Проверим условие: $990\bmod3=0$, поэтому хотя бы один элемент пары делится на $3$.
Сумма элементов: $1000+990=1990$.
Код на Python
a = [int(x) for x in open('17-23.txt')]
count = 0
max_sum = -10**20
for i in range(len(a) - 1):
x = a[i]
y = a[i + 1]
if x % 3 == 0 or y % 3 == 0:
count += 1
max_sum = max(max_sum, x + y)
print(count, max_sum)
Программа выводит:
2802 1990