Задача #1354

Обработка массивов

Сложнее ЕГЭ

(С. Чайкин) В файле содержится последовательность целых чисел, по модулю не превышающих 100 000. Определите количество троек элементов последовательности, в которых только одно число является полным квадратом, а сумма двух оставшихся элементов не меньше максимального элемента последовательности, в десятичной записи которого наибольшее количество различных цифр. В ответе запишите два числа: сначала количество найденных троек, затем сумму полных квадратов из этих троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Файлы к задаче

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

3178
104114166
def f(x): return x >= 0 and x ** 0.5 % 1 == 0

a = list(map(int, open('17.txt')))
m = max(a, key=lambda x: (len(set(str(abs(x)))), x))
b = []

for i in range(len(a)-2):
x, y, z = a[i:i+3]

d = [
(y+z) if f(x) else 0,
(x+z) if f(y) else 0,
(x+y) if f(z) else 0,
]

if sum(x > 0 for x in d) == 1 and sum(d) >= m:
b += [x + y + z - sum(d)]

print(len(b), sum(b))
Быстрый переход
Перейти к задаче