Условие: № 2491 (Уровень: Базовый)
• Статья подготовлена командой itpy
• Полный разбор задачи в Telegram
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество троек, в которых хотя бы один из трёх элементов меньше, чем среднее арифметическое всех чисел в файле, и десятичная запись всех трёх элементов тройки содержит цифру 9. В ответе запишите два числа: сначала количество найденных троек, а затем – максимальную сумму элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файлы к заданию: 17.txt
Решение через Python и комментарии к нему:
Комментарии к коду решения:
- M = [int(x) for x in open('17.txt')] - считывает все числа из файла '17.txt' и сохраняет их в виде списка M, преобразуя каждое число в целое.
- avg = sum(M) / len(M) - вычисляет среднее значение всех чисел в списке M.
- R = [] - создает пустой список R, в который будут добавляться результаты.
- Цикл for i in range(len(M)-2): проходит по всем элементам списка M, за исключением последних двух элементов.
- x, y, z = M[i], M[i+1], M[i+2] - присваивает значения ткущего элемента M[i], следующего элемента M[i+1] и элемента через один M[i+2] переменным x, y и z соответственно.
- Условие if x < avg or y < avg or z < avg: проверяет, выполняется ли хотя бы одно из условий: значение x, y или z меньше среднего значения avg.
- if all('9' in str(a) for a in [x, y, z]): - проверяет, содержит ли каждое из чисел x, y и z цифру '9'.
- Если оба условия выполняются, то значение x + y + z добавляется в список R.
- print(len(R), max(R)) - выводит на экран количество элементов в списке R и максимальное значение из списка R.
Таким образом, данный код считывает числа из файла, вычисляет среднее значение, проверяет числа по заданным условиям и выводит количество элементов и максимальное значение, удовлетворяющее условиям.