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

В файле со­дер­жит­ся по­сле­до­ва­тель­ность целых чисел. Её эле­мен­ты могут при­ни­мать целые зна­че­ния от –100 000 до 100 000 вклю­чи­тель­но. Опре­де­ли­те ко­ли­че­ство троек эле­мен­тов по­сле­до­ва­тель­но­сти, в ко­то­рых хотя бы два числа яв­ля­ют­ся дву­знач­ны­ми, а квад­рат суммы чисел трой­ки не боль­ше мак­си­маль­но­го эле­мен­та по­сле­до­ва­тель­но­сти, окан­чи­ва­ю­ще­го­ся на 33. В от­ве­те за­пи­ши­те ко­ли­че­ство най­ден­ных троек, затем мак­си­маль­ную из сумм эле­мен­тов таких троек. В дан­ной за­да­че под трой­кой под­ра­зу­ме­ва­ет­ся три иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

За­да­ние 17

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

Ре­ше­ние.

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

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

amax33 = max([x for x in a if abs(x) % 100 == 33])

s3 = []

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

troika = [a[i] , a[i+1] , a[i+2]]

advyx = [x for x in troika if len(str(abs(x)))== 2]

if len(advyx) >= 2:

if (sum(troika))**2 <= amax33:

s3.append(sum(troika))

print(len(s3),max(s3))

 

Ответ: 28 237.

 

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

a = list(map(int,open('1-7.txt')))

d = lambda x: len(str(abs(x))) == 2

ma = max(filter(lambda x: x % 100 == 33, a))

b = [x+y+z for x,y,z in zip(a,a[1:],a[2:]) if d(x)+d(y)+d(z) >= 2 and (x+y+z)**2 <= ma]

print(len(b),max(b))

 

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

def good(p,m):

t = [10 <= abs(x) < 100 for x in p]

return sum(t) >= 2 and sum(p)**2 <= m

a = [int(s) for s in open('1-7.txt')]

m = max([x for x in a if str(x)[-2:] == '33'])

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

Источник: ЕГЭ по ин­фор­ма­ти­ке 11.06.2025. Ос­нов­ная волна. Даль­ний Во­сток