Задание №17: Обработка целочисленных последовательностей
Основные типы и прототипы задания №17:
Поиск пар элементов последовательности
Тройки и кортежи чисел
Фильтрация по делимости и остаткам
Условие задания
(Е. Джобс) В файле 17-272.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Подходящей считается пара, в которой хотя бы один элемент больше среднего арифметического всех положительных элементов последовательности. Запишите в ответе количество подходящих пар, а затем максимальную сумму цифр одного элемента в подходящих парах. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Например, рассмотрим последовательность из шести элементов: 12; 18; 3; -15; 11; 16. Среднее арифметическое всех положительных элементов последовательности равно 12. Следовательно, подходит 3 пары: (12; 18), (18; 3) и (11; 16). Суммы цифр у элементов: 3 (1+2), 9 (1+8), 3, 2 (1+1), 7 (1+6). Ответ: 3 9.
Например, рассмотрим последовательность из шести элементов: 12; 18; 3; -15; 11; 16. Среднее арифметическое всех положительных элементов последовательности равно 12. Следовательно, подходит 3 пары: (12; 18), (18; 3) и (11; 16). Суммы цифр у элементов: 3 (1+2), 9 (1+8), 3, 2 (1+1), 7 (1+6). Ответ: 3 9.
Ответ:
4440 35
Шаблон решения на Python
# === Задание 17: Обработка числовой последовательности ===
with open('17.txt') as f:
a = [int(x) for x in f]
# Контрольное значение (например, макс. элемент, оканчивающийся на 13):
max_target = max(x for x in a if abs(x) % 100 == 13)
ans = []
for i in range(len(a) - 1):
pair = (a[i], a[i+1])
if sum(1 for x in pair if abs(x) % 100 == 13) == 1:
if (pair[0]**2 + pair[1]**2) <= max_target**2:
ans.append(pair[0] + pair[1])
print(f"Количество пар: {len(ans)}, Максимальная сумма: {max(ans)}")