Тема 26. Обработка целочисленной информации с использованием сортировки

26.09 Прочие прототипы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации с использованием сортировки
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#87927

На кондитерской фабрике имеется N коржей для приготовления тортов, которые накладываются в виде пирамиды. Клиент попросил приготовить на заказ торт-пирамиду максимальной высоты из поставленных друг на друга коржей, такую, чтобы в пирамиде использовались коржи, диаметры которых в партии повторяются, при этом сам корж определенного диаметра используется один раз и выбирается наиболее пышный. Пирамида строится так, чтобы разность диаметра каждого следующего коржа с диаметром предыдущего была положительной.

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

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

В первой строке входного файла 26_2.txt находится число N – количество коржей для приготовления торта (натуральное число, не превышающее 10000). В следующих N строках находятся два числа: значение диаметра коржа (все числа натуральные, не превышающие 10000) и значение высоты коржа, каждое – в отдельной строке.

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

Вложения к задаче
Показать ответ и решение

Откроем текстовый документ, скопируем его и перенесем в столбец А таблицы Excel. Первую строку таблицы можно удалить, она нам не понадобится.

Переходим в раздел «Данные», «Текст по столбцам» и разделим первый столбец на два по разделителю «пробел».

Выделим столбцы А и В, перейдем в раздел настраиваемая сортировка и отсортируем сначала столбец А по убыванию, затем столбец В по убыванию.

В ячейку C2 запишем формулу:

=ЕСЛИ(И(A2<>A1;A2=A3);B2;””)

Таким образом мы отсортировали список коржей так, чтобы как минимум два коржа имели одинаковый диаметр, а также высота выбранного коржа была максимальна.

Выделяем столбец С и видим, что сумма по нему равна 186886. Это будет первым ответом.

Спускаемся на самую нижнюю строчку нашего списка и ищем последнюю строку, имеющую в столбце С значение 95. Значит, это последний корж, который находится на верхнем ярусе пирамиды. В столбце А находим его диаметр, он равен 3. Это будет вторым ответом.

Решение (Python)

f = open (’26_2.txt’)
n = f.readline()
cakes = [list(map(int, i.split())) for i in f] # Считываем все строки из файла

cakes = sorted(cakes, key = lambda x: (-x[0], -x[1]))
# Сортируем по убыванию диаметра и убыванию высоты коржа
dm = [i[0] for i in cakes] # Все диаметры коржей
cake_pyramid = [] # Торт - пирамида, который мы составляем

for i in cakes:
# Проверяем, что диаметр текущего коржа встречается в файле больше 1 раза
# Чтобы добавить корж в пирамиду, проверяем, что его диаметр меньше предыдущего
    if dm.count(i[0]) > 1 and (not(cake_pyramid) or (i[0] < cake_pyramid[-1][0])):
        cake_pyramid.append(i)

print(sum(i[1] for i in cake_pyramid)) # Высота торта - пирамиды
print(cake_pyramid[-1][0]) # Диаметр самого маленького коржа в пирамиде

Ответ: 186886 3

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!