Задача #1354
Обработка массивов
(С. Чайкин) В файле содержится последовательность целых чисел, по модулю не превышающих 100 000. Определите количество троек элементов последовательности, в которых только одно число является полным квадратом, а сумма двух оставшихся элементов не меньше максимального элемента последовательности, в десятичной записи которого наибольшее количество различных цифр. В ответе запишите два числа: сначала количество найденных троек, затем сумму полных квадратов из этих троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
3178
104114166
def f(x): return x >= 0 and x ** 0.5 % 1 == 0a = 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))