Задания
Версия для печати и копирования в MS Word
Тип 17 № 84711
i

В файле со­дер­жит­ся по­сле­до­ва­тель­ность целых чисел. Эле­мен­ты по­сле­до­ва­тель­но­сти могут при­ни­мать целые зна­че­ния от –10 000 до 10 000 вклю­чи­тель­но.

Опре­де­ли­те ко­ли­че­ство троек эле­мен­тов по­сле­до­ва­тель­но­сти, в ко­то­рых не менее двух из трёх эле­мен­тов яв­ля­ют­ся четырёхзнач­ны­ми чис­ла­ми, а сумма эле­мен­тов трой­ки не боль­ше ми­ни­маль­но­го четырёхзнач­но­го по­ло­жи­тель­но­го эле­мен­та по­сле­до­ва­тель­но­сти.

В от­ве­те за­пи­ши­те ко­ли­че­ство най­ден­ных троек чисел, затем мак­си­маль­ную из сумм эле­мен­тов таких троек. В дан­ной за­да­че под трой­кой под­ра­зу­ме­ва­ют­ся три иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

За­да­ние 17

Ответ:

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке 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))