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

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

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

За­да­ние 26

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

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

Ти­по­вой при­мер ор­га­ни­за­ции дан­ных во вход­ном файле:

5 4

39 55

40 42

44 44

40 55

50

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

 

Ответ:

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

Ре­ше­ние.

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

f = open("2681493.txt")

n, m = map(int, f.readline().split())

boxes = []

for i in range(m):

red_box, green_box = map(int, f.readline().split())

boxes.append([red_box, 'red'])

boxes.append([green_box, 'green'])

for i in range(n-m):

red_box = int(f.readline())

boxes.append([red_box, 'red'])

boxes.sort(reverse=True)

present = [boxes[0]]

for box in boxes:

if present[-1][0] - box[0] >= 5:

if present[-1][1] != box[1]:

present.append(box)

print(len(present), present[-1][0])

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

 

Ответ: 1770  4.

 

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

f=open('2681493.txt')

f.readline()

boxes=[]

for s in f:

x=list(map(int,s.split()))

boxes.append((x[0],'R'))

if len(x)>1: boxes.append((x[1],'G'))

boxes.sort(key=lambda x: x[0], reverse=True)

matr=[boxes[0]]

for b in boxes:

if b[1]!=matr[-1][1] and matr[-1][0]-b[0]>=5: matr.append(b)

print(len(matr),matr[-1][0])

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