Задание 17. Информатика. ЕГЭ. Поляков-7989

Просмотры: 345
Изменено: 22 февраля 2025

В файле содержится последовательность натуральных чисел, не превышающих \(100~000.\) Определите количество троек элементов последовательности, для которых выполняются следующие условия:

  • в тройке есть трёхзначные числа;
  • в тройке не более одного числа, у которого сумма цифр равна сумме цифр \(13\)-го по счёту элемента последовательности, делящегося на \(13;\)
  • в тройке не менее двух чисел, у которых сумма цифр равна сумме цифр \(25\)-го по счёту элемента последовательности, делящегося на \(25.\)

В ответе запишите два числа: сначала количество найденных троек, затем среднее арифметическое сумм элементов этих троек, округленное до ближайшего меньшего целого числа. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Файл с данными

Решение:

Python


base = ''
nums = [int(x) for x in open(base + '17.txt')]
n13 = [x for x in nums if x % 13 == 0]
n25 = [x for x in nums if x % 25 == 0]
s13 = sum(int(z) for z in str(n13[12]))
s25 = sum(int(z) for z in str(n25[24]))

q, sum_el = 0, 0

for tr in zip(nums, nums[1:], nums[2:]):
    if any(99 < x < 1000 for x in tr) \
        and sum(sum(int(z) for z in str(x)) == s13 for x in tr) < 2 \
        and sum(sum(int(z) for z in str(x)) == s25 for x in tr) > 1:
        q += 1
        sum_el += sum(tr)
print(q, int(sum_el / q))

Ответ: \(118 \,\, 12695\)