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

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

За­да­ние 26

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

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

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

5

43

40

32

40

30

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

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

Ти­по­вой при­мер имеет ил­лю­стра­тив­ный ха­рак­тер. Для вы­пол­не­ния за­да­ния ис­поль­зуй­те дан­ные из при­ла­га­е­мых фай­лов.

 

Ответ:

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

Ре­ше­ние.

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

f = open('1_26.txt')

n = int(f.readline())

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

a.sort(reverse = True)

count = 1

diametr = a[0]

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

if diametr - a[i] >= 4:

count += 1

diametr = a[i]

print(count,diametr)

 

Ответ: 2172  50.

 

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

s = tuple(map(int, open('1_26.txt').read().splitlines()))

n = s[0]

k = sorted(s[1:])[::-1]

tort = [k[0]]

for i in range(1, n):

if tort[-1] - k[i] >= 4:

tort.append(k[i])

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

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