Задача к ЕГЭ по информатике на тему «обработка числовой последовательности» №8

В файле(dz17-17.txt) содержится последовательность целых чисел. Элементы последовательности могут принимать значения от 0 до 1500 включительно. Определите сначала количество троек элементов последовательности, в которых хотя бы два числа в двоичной системе счисления имеют не менее 3 единиц и эти же два числа в двоичной системе счисления имеют как минимум один ноль, а затем максимальное число среди максимальных чисел в подходящих тройках. Под тройкой подразумевается три идущих подряд элемента последовательности.

f = open(’dz17-17.txt’)
s = [int(_) for _ in f]
counter = 0
maxim = 0
for i in range(len(s) - 2):
    x1 = bin(s[i])[2:]
    x2 = bin(s[i + 1])[2:]
    x3 = bin(s[i + 2])[2:]
    y1 = (x1.count(’1’) >= 3) * (x1.count(’0’) >= 1)
    y2 = (x2.count(’1’) >= 3) * (x2.count(’0’) >= 1)
    y3 = (x3.count(’1’) >= 3) * (x3.count(’0’) >= 1)
    if sum([y1, y2, y3]) >= 2:
        counter += 1
        maxim = max(maxim, s[i], s[i + 1], s[i + 2])
print(counter, maxim)

Ответ: 9926 1500
Оцените статью
Я решу все!