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

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

За­да­ние 17

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

Ре­ше­ние.

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

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

amax7 = max([x for x in a if x % 10 == 7])

s3 = []

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

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

aabssumm = abs(sum(troika))

alen = [x for x in troika if (abs(x)%10 == 7 and len(str(abs(x)))==3)]

arazrad = [str(abs(x))[0] for x in troika]

if arazrad[0] == arazrad[1] == arazrad[2]:

if aabssumm < amax7 and len(alen) > 0:

s3.append(abs(sum(troika)))

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

 

Ответ: 1 45768.

 

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

def good(p,m):

t = [100 <= abs(x) < 1000 and str(x)[-1] == '7' for x in p]

pc = [str(abs(x))[0] for x in p]

return len(set(pc)) == 1 and any(t) and abs(sum(p)) < m

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

m = max([x for x in a if str(x)[-1] == '7'])

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),abs(max(r)))

Источник: Проб­ный ЕГЭ Санкт-Пе­тер­бург, 20.02.2025. Ва­ри­ант 1