Задание 17 ЕГЭ: тройки соседних элементов
Тройки соседних элементов последовательности. Тема номера — обработка последовательности из файла. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.
Пример
Задание выполняется с использованием прилагаемого файла.
В файле 17.txt содержится последовательность из 9490 целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Определите количество троек элементов последовательности, в которых ровно один из трёх элементов кратны 5, а сумма элементов тройки не больше максимального элемента последовательности, запись которого оканчивается цифрой 0.
В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Запишите два числа через пробел.
Ответ
3019 -26775Решение
Сначала один проход по файлу: опорное значение R — максимального элемента последовательности, запись которого оканчивается цифрой 0, R = 10 000. Затем окно из трёх соседних элементов сдвигаем по одному: считаем, сколько элементов тройки обладают свойством, и сравниваем сумму тройки с R.
Ответ: 3019 -26775.
a = [int(x) for x in open('17.txt')]
R = max(x for x in a if abs(x) % 10 == 0)
sums = []
for i in range(len(a) - 2):
t = a[i:i + 3]
k = sum(1 for x in t if x % 5 == 0)
if k == 1 and sum(t) <= R:
sums.append(sum(t))
print(len(sums), min(sums))