
№ 7020 (Уровень: Базовый)
(М.Шагитов) В файле содержится последовательность натуральных чисел. Элементы последовательности могут принимать целые значения от -100000 до 100000 включительно. Определите количество четверок последовательности, в которых остаток от деления ни одного из модулей чисел четверки на 111 не равен минимальному положительному элементу последовательности. В ответе запишите количество найденных четверок, затем минимальную из сумм элементов таких четверок. В данной задаче под четверкой подразумевается четыре идущих подряд элемента последовательности.
Файлы к заданию: 17.txt

Комментарии к первому варианту решения задачи:
M = [int(i) for i in open('lessons/17.txt')] - мы открываем файл '17.txt' и считываем из него целые числа. В результате получаем список M.A = min([i for i in M if i > 0]) - здесь мы находим минимальное положительное число в списке M и присваиваем его переменной A.count = 0 - это счетчик, который отвечает за количество подходящих четверок.mini = 99999999 - это переменная, которая хранит наименьшую сумму подходящих четверок.for i in range(0, len(M)-3): - здесь мы перебираем все возможные четверки из списка M.if all(abs(x) % 111 != A for x in M[i:i+4]): - это условие, которое проверяет, что в данной четверке нет чисел, которые делятся на 111 с остатком A.count += 1 - если условие выполняется, то мы увеличиваем счетчик count на 1.mini = min(mini, sum(M[i:i+4])) - здесь мы выбираем наименьшее значение между переменной mini и суммой текущей четверки из списка M.print(count, mini) - в конце программы мы выводим количество подходящих четверок и наименьшую сумму из этих четверок.M = [int(i) for i in open('17.txt')]
A = min([i for i in M if i > 0])
count = 0
mini = 99999999
for i in range(0, len(M)-3):
if all(abs(x) % 111 != A for x in M[i:i+4]):
count += 1
mini = min(mini, sum(M[i:i+4]))
print(count, mini)