Главная / 27 февраля 2026 г.

№17. Обработки числовой последовательности

435) (Апробация-2025) В файле 17-435.txt содержится последовательность целых чисел, не превышающих по модулю 100 000. Определите количество троек последовательности, в которых все числа одного знака, при этом произведение минимального и максимального элементов тройки больше квадрата минимального элемента последовательности, который оканчивается на 12 и является трёхзначным числом. В ответе запишите количество найденных троек чисел, затем минимальное из произведений максимального и минимального элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Решение
with open("17-435.txt", "r") as f:
    a = [int(i) for i in f.readlines()]


def z(x, y, z):
    m = [x, y, z]
    k = 0
    l = 0
    for i in m:
        if i > 0:
            k += 1
        if i < 0:
            l += 1
    if k == 3 or l == 3:
        return True
    else:
        return False


min0 = 100000
for x in a:
    if abs(x) % 100 == 12 and 99 < abs(x) < 1000 and min0 > x:
        min0 = x
        k = 0
print(min0)

minp = 10000000000
for i in range(len(a) - 2):
    if z(a[i], a[i + 1], a[i + 2]) and max(a[i], a[i + 1], a[i + 2]) * min(a[i], a[i + 1], a[i + 2]) > min0 ** 2:
        k += 1
        print(a[i],a[i + 1],a[i + 2])

        if max(a[i], a[i + 1], a[i + 2]) * min(a[i], a[i + 1], a[i + 2]) < minp:
            minp = max(a[i], a[i + 1], a[i + 2]) * min(a[i], a[i + 1], a[i + 2])

print(k, minp)