В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно.
Определите количество пар последовательности, в которых остаток от деления на 33 хотя бы одного из элементов равен минимальному элементу последовательности.
В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Ответ:
(количество найденных пар) (максимальную из сумм элементов таких пар)
Демонстрационный вариант ЕГЭ 2027 по информатике – задание №17
Решение:
Решение —
Считаем все числа из файла в список:
|
1 2 3 |
f = open('demo2027_inf_17.txt') a = [int(x) for x in f.readlines()] |
Найдём минимальный элемент всей последовательности:
|
1 2 |
mn = min(a) |
По условию рассматриваются пары соседних элементов. Поэтому перебираем элементы с индексами от 0 до len(a) - 2:
|
1 2 |
for i in range(len(a) - 1): |
Для каждой пары a[i] и a[i+1] проверяем условие: остаток от деления на 33 хотя бы одного из элементов должен быть равен минимальному элементу последовательности:
|
1 2 |
if a[i] % 33 == mn or a[i+1] % 33 == mn: |
Если условие выполнено, сохраняем сумму элементов этой пары:
|
1 2 |
b.append(a[i] + a[i+1]) |
Полная программа:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
f = open('demo2027_inf_17.txt') a = [int(x) for x in f.readlines()] mn = min(a) b = [] for i in range(len(a) - 1): if a[i] % 33 == mn or a[i+1] % 33 == mn: b.append(a[i] + a[i+1]) print(len(b), max(b)) |
Здесь:
len(b)— количество найденных пар;max(b)— максимальная сумма элементов среди этих пар.
Ответ: 622 174933