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

За­да­ние вы­пол­ня­ет­ся с ис­поль­зо­ва­ни­ем при­ла­га­е­мых фай­лов.

По ка­на­лу связи пе­ре­даётся по­сле­до­ва­тель­ность целых чисел  — по­ка­за­ния при­бо­ра, по­лу­чен­ные с ин­тер­ва­лом 1 мин. в те­че­ние N мин. (N  — на­ту­раль­ное число). При­бор из­ме­ря­ет зна­че­ние за­ря­да ча­стиц, по­лу­чен­ное ре­ги­стра­то­ром за ми­ну­ту, пред­ше­ству­ю­щую мо­мен­ту ре­ги­стра­ции, и пе­ре­даёт это зна­че­ние в услов­ных еди­ни­цах из­ме­ре­ния.

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

Файл А

Файл В

Вход­ные дан­ные.

Даны два вход­ных файла (файл А и файл В), каж­дый из ко­то­рых в пер­вой стро­ке со­дер­жит на­ту­раль­ное число K  — ми­ни­маль­ное ко­ли­че­ство минут, ко­то­рое долж­но прой­ти между  — двумя пе­ре­да­ча­ми по­ка­за­ний, а во вто­рой  — ко­ли­че­ство пе­ре­дан­ных по­ка­за­ний N (1 ≤  N ≤ 10 000 000, N > K). В каж­дой из сле­ду­ю­щих N строк на­хо­дит­ся одно целое число, по мо­ду­лю не пре­вы­ша­ю­щее 100 000, обо­зна­ча­ю­щее чис­ло­вое зна­че­ние за­ря­да ча­стиц в ми­ну­ту.

Вы­ход­ные дан­ные.

За­пи­ши­те в от­ве­те два числа: сна­ча­ла зна­че­ние ис­ко­мой ве­ли­чи­ны для файла A, затем  — для файла B.

 

Ответ:

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

Ре­ше­ние.

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

f = open('27.txt')

K = int(f.readline())

N = int(f.readline())

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

m = 0

maxi = 0

for i in range(K,N): #пе­ре­би­ра­ем числа на­чи­ная с К, так как между из­ме­ре­ни­я­ми про­шло менее K минут

m = max(m, a[i-K]) #вы­би­ра­ем мак­си­маль­ное из­ме­ре­ние на рас­сто­я­нии не менее К

maxi = max(maxi, a[i] * m) #опре­де­ля­ем мак­си­маль­ное про­из­ве­де­ние из­ме­ре­ний

print(maxi)

 

В ре­зуль­та­те ра­бо­ты дан­но­го ал­го­рит­ма при вводе дан­ных из файла A ответ  — 9992901218, из файла B  — 9999600004.

 

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

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

 

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

k, _, *a = [int(s) for s in open('27B_59826.txt')]

r, m = 0, 0

for i in range(k,len(a)):

m = max(m,a[i-k])

r = max(r,m*a[i])

print(r)


Аналоги к заданию № 59826: 59855 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 20.06.2023. Ос­нов­ная волна. Раз­ные го­ро­да