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

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

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

За­да­ние 26

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

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

При­мер вход­но­го файла:

5

43

40

32

40

30

При­мер вход­но­го файла при­ведён для пяти ко­ро­бок и слу­чая, когда ми­ни­маль­ная до­пу­сти­мая раз­ни­ца между дли­на­ми сто­рон ко­ро­бок, под­хо­дя­щих для упа­ков­ки «матрёшкой», со­став­ля­ет 3 еди­ни­цы.

При таких ис­ход­ных дан­ных усло­вию за­да­чи удо­вле­тво­ря­ют на­бо­ры ко­ро­бок с дли­на­ми сто­рон 30, 40 и 43 или 32, 40 и 43 со­от­вет­ствен­но, то есть ко­ли­че­ство ко­ро­бок равно 3, а длина сто­ро­ны самой ма­лень­кой ко­роб­ки равна 32.

 

Ответ:

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

Ре­ше­ние.

Сна­ча­ла счи­та­ем в спи­сок boxes дан­ные из файла. После этого от­сор­ти­ру­ем спи­сок в по­ряд­ке убы­ва­ния. В спи­сок answer сна­ча­ла по­ме­стим самую боль­шую ко­роб­ку. Далее пройдём по остав­шим­ся ко­роб­кам и будем до­бав­лять в спи­сок answer оче­ред­ную ко­роб­ку, если длина её сто­ро­ны будет как ми­ни­мум на 9 еди­ниц мень­ше по­след­не­го эле­мен­та спис­ка answer.

 

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

f = open('26.txt')

n = f.readline()

boxes = sorted([int(i) for i in f], reverse=True)

answer = [boxes[0]]

for box in boxes[1:]:

if answer[-1] - box >= 9:

answer.append(box)

print(len(answer), answer[-1])

 

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

 

Ответ: 1040 57.

 

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


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

Источник: ЕГЭ—2025. До­сроч­ная волна 08.04.2025. Ва­ри­ант ФИПИ