(И. Кушнир) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(1\) до \(100~000\) включительно. Обозначим через \(M\) максимальный элемент последовательности, кратный \(37.\) Определите количество пар последовательности, в которых хотя бы одно число делится на \(M,\) а сумма элементов пары при делении на \(M\) дает в остатке число, большее \(30.\) Гарантируется, что такая пара в последовательности есть. В ответе запишите количество найденных пар и минимальную сумму элементов среди таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Решение:
Python
nums = [int(x) for x in open('5285.txt')]
M = max(x for x in nums if x % 37 == 0)
q, ms = 0, float('inf')
for a, b in zip(nums, nums[1:]):
if (a % M == 0 or b % M == 0) and (a + b) % M > 30:
q += 1
ms = min(ms, a + b)
print(q, ms)
Ответ: \(2 \,\, 124339\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене