В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения
Определите количество троек элементов последовательности, в которых не менее двух из трёх элементов являются четырёхзначными числами, а сумма элементов тройки не больше минимального четырёхзначного положительного элемента последовательности.
В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумеваются три идущих подряд элемента последовательности.
Ответ:
Приведём решение на языке Python.
s = [int(i) for i in open('17.txt')]
otv = []
mini_f = min([i for i in s if i > 0 and len(str(i)) == 4])
for i in range (len(s)-2):
tri = [s[i], s[i+1], s[i+2]]
f_elem = [x for x in tri if len(str(abs(x))) == 4]
if len(f_elem) >= 2:
if sum(tri) <= mini_f:
otv.append(sum(tri))
print(len(otv), max(otv))
В результате работы данного алгоритма при вводе данных из файла ответ — 2627 1005.
Ответ: 2627 1005.
Приведём решение Юрия Красильникова на языке Python.
def good(p,m):
t = [1000 <= abs(x) < 10000 for x in p]
return sum(t) >= 2 and sum(p) <= m
a = [int(s) for s in open('17.txt')]
m = min([x for x in a if 1000 <= x < 10000])
r = [sum(a[i-2:i+1]) for i in range(2,len(a)) if good(a[i-2:i+1],m)]
print(len(r),max(r))

