26.07 Детали на конвейерной ленте
Ошибка.
Попробуйте повторить позже
Отдел маркетинга сети магазинов составляет рейтинг продуктов по информации об их сроках хранения с момента изготовления и после вскрытия упаковки. Для каждого продукта известен срок его хранения с момента изготовления и срок годности к употреблению после вскрытия упаковки. Продукты пронумерованы начиная с единицы. В рейтинговом списке маркетологи располагают продукты по следующему алгоритму:
– все чисел, обозначающих срок хранения и срок годности к употреблению для
продуктов, упорядочивают
по возрастанию;
– если минимальное число в этом упорядоченном списке – срок хранения, то продукт в рейтинге занимает первое свободное место от его начала;
– если минимальное число – срок годности к употреблению, то продукт занимает первое свободное место от конца рейтинга;
– если число обозначает срок хранения или срок годности к употреблению уже рассмотренного продукта, то его не принимают во внимание.
Этот алгоритм применяется последовательно для размещения всех продуктов.
Определите номер последнего продукта, для которого будет определено его место в рейтинге, и количество продуктов, которые займут в рейтинге более низкие места.
Входные данные
В первой строке входного файла находится натуральное число
– количество продуктов.
Следующие
строк содержат пары чисел, обозначающих соответственно срок хранения продукта с
момента изготовления и срок годности к употреблению после вскрытия упаковки (все числа натуральные,
различные).
Запишите в ответе два натуральных числа: сначала номер последнего продукта, для которого будет определено его место в рейтинге, затем – количество продуктов, которые займут в рейтинге более низкие места.
file = open(’DEMO_26.txt’) n = int(file.readline()) products = [] # Читаем данные о продуктах for i in range(n): data = list(map(int, file.readline().split())) storage = data[0] # Срок хранения usage = data[1] # Срок годности после вскрытия products.append((storage, ’storage’, i + 1)) # Добавляем срок хранения products.append((usage, ’usage’, i + 1)) # Добавляем срок годности # Сортируем все числа по возрастанию products.sort(key=lambda x: x[0]) # Инициализируем рейтинг (0 - свободное место) rating = [0] * n placed_products = [] # Список размещенных продуктов в порядке их размещения used_products = set() # Множество уже размещенных продуктов # Обрабатываем числа в отсортированном порядке for product in products: value, prodtype, num = product # Если продукт уже размещен - пропускаем if num in used_products: continue # Если минимальное число в упорядоченном списке – срок хранения, то ищем первое свободное место с начала. # Фиксируем, что продукт размещен и был использован (чтобы не размещать срок годности этого же продукта) if prodtype == ’storage’: for i in range(n): if rating[i] == 0: rating[i] = num placed_products.append(num) used_products.add(num) break else:# Если минимальное число в упорядоченном списке – срок годности, то # ищем первое свободное место с конца # Фиксируем, что продукт размещен и был использован (чтобы не размещать срок хранения этого же продукта) for i in range(n - 1, -1, -1): if rating[i] == 0: rating[i] = num placed_products.append(num) used_products.add(num) break # Находим последний размещенный продукт last_product = placed_products[-1] # Находим позицию последнего продукта в рейтинге last_position = rating.index(last_product) # Считаем количество продуктов с более низкими местами lower_rated_count = len(rating) - last_position - 1 print(last_product, lower_rated_count)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

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

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

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

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

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!