№17
Примеры решений прототипа №1
Анализ числовых массивов данных
ПРИМЕРЫ РЕШЕНИЯ
№ 1970 Демоверсия 2022 (Уровень: Базовый)
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Например, для последовательности из пяти элементов: 6; 2; 9; –3; 6 – ответ: 4 11
data = [int(x) for x in open('files/17_1970.txt')]
res = []
for a, b in zip(data, data[1:]):
if abs(a) % 3 == 0 or abs(b) % 3 == 0: res.append(a + b)
print(len(res), max(res))
№ 17680 Пересдача 04.07.24 (Уровень: Базовый)
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от –100 000 до 100 000 включительно. Определите количество пар последовательности, в которых элементы не равны, а абсолютное значение их разности делится на минимальный положительный элемент последовательности, кратный 41. Гарантируется, что такой элемент в последовательности есть. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
data = [int(x) for x in open('files/17_17680.txt')]
mn = min(x for x in data if x > 0 and x % 41 == 0)
res = []
for a, b in zip(data, data[1:]):
if a != b and abs(a - b) % mn == 0: res.append(a + b)
print(len(res), max(res))
№ 2001 (Уровень: Базовый)
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество четвёрок элементов последовательности, в которых чётность соседних чисел различна, затем максимальную сумму среди таких четвёрок. В данной задаче под четвёркой подразумевается четыре идущих подряд элемента последовательности.
data = [int(x) for x in open('files/17_2001.txt')]
res = []
for a, b, c, d in zip(data, data[1:], data[2:], data[3:]):
if (a % 2 != b % 2) and (b % 2 != c % 2) and (c % 2 != d % 2):
res.append(a + b + c + d)
print(len(res), max(res))
№ 4705 Демоверсия 2023 (Уровень: Базовый)
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество пар последовательности, в которых только одно число оканчивается на 3, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 3. В ответе запишите два числа: сначала количество найденных пар, затем максимальную из сумм квадратов элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
data = [int(x) for x in open('files/17_4705.txt')]
mx = max([x for x in data if str(x)[-1] == '3'])
res = []
for a, b in zip(data, data[1:]):
if (abs(a) % 10 == 3) + (abs(b) % 10 == 3) == 1:
if (a ** 2 + b ** 2) >= mx ** 2:
res.append(a**2 + b**2)
print(len(res), max(res))
№ 10100 Демоверсия 2024 (Уровень: Средний)
В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100 000. Определите количество троек элементов последовательности, в которых ровно два из трёх элементов являются трёхзначными числами, а сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 13.
Гарантируется, что в последовательности есть хотя бы одно число, оканчивающееся на 13. В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
data = [int(x) for x in open('files/17_10100.txt')]
mx = max([x for x in data if x % 100 == 13])
res = []
for tr in zip(data, data[1:], data[2:]):
if len([x for x in tr if 100 <= x <= 999]) == 2:
if sum(tr) <= mx:
res.append(sum(tr))
print(len(res), max(res))