В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число отрицательно, а сумма чисел пары меньше количества чисел последовательности, кратных 32.
В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Ответ:
(количество найденных пар) (максимальную из сумм элементов таких пар)
ЕГЭ по информатике Основная волна 08.06.2024 kompege.ru – задание №17
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 |
f=open('ege-inf-real-08062024-2day-q17.txt').readlines() a=[int(x) for x in f] k=0 for i in range(len(a)): if a[i]%32 == 0: k+=1 b=[] for i in range(len(a)-1): if (a[i]<0 or a[i+1]<0) and a[i]+a[i+1]<k: b.append(a[i]+a[i+1]) print(len(b),max(b)) |
Данный код решает задачу поиска пар чисел в последовательности, удовлетворяющих определённым условиям. Вот пошаговое объяснение:
- Считывание данных из файла:
1f=open('ege-inf-real-08062024-2day-q17.txt').readlines()
Код открывает файл с именем'ege-inf-real-08062024-2day-q17.txt'и читает все строки в списокf. - Преобразование строк в целые числа:
1a=[int(x) for x in f]
Этот код создает списокa, содержащий целые числа, преобразованные из строк в спискеf. - Подсчёт количества чисел, кратных 32:
1234k=0for i in range(len(a)):if a[i]%32 == 0:k+=1
Инициализируется переменнаяkдля подсчёта количества чисел в последовательности, кратных 32. Цикл проходит по всем элементам спискаa, и если число делится на 32 без остатка,kувеличивается на 1. - Поиск пар чисел, удовлетворяющих условиям:
123b=[]for i in range(len(a)-1):if (a[i]<0 or a[i+1]<0) and a[i]+a[i+1]
Создается пустой списокbдля хранения сумм подходящих пар. Цикл проходит по всем парам последовательных элементов спискаa. Если хотя бы одно число в паре отрицательное и сумма пары меньшеk, сумма добавляется в списокb. - Вывод результатов:
1print(len(b),max(b))
В конце выводится количество найденных пар (len(b)) и максимальная сумма среди этих пар (max(b)).
Ответ: 4969 299
