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

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

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

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

За­да­ние 17

Ответ:

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

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

s = [int(i) for i in open('17.txt')]

otv = []

mini_tri = min([i for i in s if i > 0 and len(str(i)) == 3])

for i in range (len(s)-2):

tri = [s[i], s[i+1], s[i+2]]

tri_elem = [x for x in tri if len(str(abs(x))) == 3]

if len(tri_elem) <= 2:

if sum(tri) >= mini_tri:

otv.append(sum(tri))

print(len(otv), max(otv))

 

В ре­зуль­та­те ра­бо­ты дан­но­го ал­го­рит­ма при вводе дан­ных из файла ответ  — 2441  27284.

 

Ответ: 2441  27284.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def good(p,m):

t = [100 <= abs(x) < 1000 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 100 <= x < 1000])

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))