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

В файле со­дер­жит­ся по­сле­до­ва­тель­ность целых чисел. Эле­мен­ты по­сле­до­ва­тель­но­сти могут при­ни­мать целые зна­че­ния от −10 000 до 10 000 вклю­чи­тель­но. Опре­де­ли­те ко­ли­че­ство пар по­сле­до­ва­тель­но­сти, в ко­то­рых толь­ко одно число окан­чи­ва­ет­ся на 3, а сумма квад­ра­тов эле­мен­тов пары не мень­ше квад­ра­та мак­си­маль­но­го эле­мен­та по­сле­до­ва­тель­но­сти, окан­чи­ва­ю­ще­го­ся на 3. В от­ве­те за­пи­ши­те два числа: сна­ча­ла ко­ли­че­ство най­ден­ных пар, затем мак­си­маль­ную из сумм квад­ра­тов эле­мен­тов таких пар. В дан­ной за­да­че под парой под­ра­зу­ме­ва­ет­ся два иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

За­да­ние 17

Ответ:

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

Ре­ше­ние.

Счи­та­ем числа из файла. Сна­ча­ла найдём мак­си­маль­ное по мо­ду­лю число, за­кан­чи­ва­ю­ще­е­ся на 3, и его квад­рат за­пи­шем в пе­ре­мен­ную max_square. Далее пройдём по всей по­сле­до­ва­тель­но­сти чисел, рас­смат­ри­вая каж­дые два со­сед­них числа. Будем про­ве­рять, что толь­ко одно из них кон­ча­ет­ся циф­рой 3, а также что их сумма квад­ра­тов не мень­ше зна­че­ния пе­ре­мен­ной max_square. Если пара чисел будет удо­вле­тво­рять усло­вию, будем уве­ли­чи­вать зна­че­ния счётчика count, а также в пе­ре­мен­ную max_square_sum за­пи­сы­вать мак­си­маль­ную сумму квад­ра­тов.

 

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

f = open('17.txt')

nums = [int(i) for i in f]

max_square_sum = count = 0

max_elem=-10001

for x in nums:

if abs(x) % 10 ==3:

max_elem=max(max_elem, x)

for i in range(len(nums) - 1):

check_suf = (abs(nums[i]) % 10 == 3 and abs(nums[i + 1]) %10 != 3) or (abs(nums[i]) %10 != 3 and abs(nums[i + 1]) % 10 == 3)

if check_suf and nums[i] ** 2 + nums[i + 1] ** 2 >= max_elem**2:

count += 1

max_square_sum = max(max_square_sum, nums[i] ** 2 + nums[i + 1] ** 2)

print(count, max_square_sum)

 

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

 

Ответ: 180 190360573.

 

При­ме­ча­ние.

Путь к файлу не­об­хо­ди­мо ука­зать со­глас­но рас­по­ло­же­нию файла на Вашем ком­пью­те­ре.

 

При­ведём ре­ше­ние Ев­ге­ния Пет­чен­ко на языке Python.

f = [abs(int(i)) for i in open("17.txt")]

max_element = max(f, key=lambda x: x if x % 10 == 3 else -10_000) ** 2

result = []

for i in range(len(f) - 1):

c = 0

if f[i] % 10 == 3:

c += 1

if f[i + 1] % 10 == 3:

c += 1

if c == 1 and f[i]**2 + f[i + 1]**2 >= max_element:

result.append(f[i]**2 + f[i + 1]**2)

print(len(result), max(result))

 

При­ведём ре­ше­ние Ми­ха­и­ла Глин­ско­го на языке Python.

f=open('17.txt')

m=[int(x) for x in f]

m3=[x for x in m if abs(x%10)==3]

r=[]

for i in range(len(m)-1):

kk=0

if abs(m[i])%10==3:

kk+=1

if abs(m[i+1])%10==3:

kk+=1

if kk==1 and m[i]**2+m[i+1]**2>=(max(m3))**2:

r.append(m[i]**2+m[i+1]**2)

print(len(r),max(r))

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2023 по ин­фор­ма­ти­ке