Задание №6529.
Обработка целочисленной информации. ЕГЭ по информатике
Файл, необходимый для выполнения задания: ссылка для скачивания.Отдел маркетинга сети магазинов составляет рейтинг продуктов по информации об их сроках хранения с момента изготовления и после вскрытия упаковки. Для каждого продукта известен срок его хранения с момента изготовления и срок годности к употреблению после вскрытия упаковки. Продукты пронумерованы начиная с единицы.
В рейтинговом списке маркетологи располагают продукты по следующему алгоритму:
– все 2
N чисел, обозначающих срок хранения и срок годности к употреблению для
N продуктов, упорядочивают по возрастанию;
– если минимальное число в этом упорядоченном списке – срок хранения, то продукт в рейтинге занимает первое свободное место от его начала;
– если минимальное число – срок годности к употреблению, то продукт занимает первое свободное место от конца рейтинга;
– если число обозначает срок хранения или срок годности к употреблению уже рассмотренного продукта, то его не принимают во внимание.
Этот алгоритм применяется последовательно для размещения всех
N продуктов.
Определите номер последнего продукта, для которого будет определено его место в рейтинге, и количество продуктов, которые займут в рейтинге более низкие места.
Входные данные
В первой строке входного файла находится натуральное число
N (
N ≤ 1000) – количество продуктов. Следующие
N строк содержат пары чисел, обозначающих соответственно срок хранения продукта с момента изготовления и срок годности к употреблению после вскрытия упаковки (все числа натуральные, различные).
Запишите в ответе два натуральных числа: сначала номер последнего продукта, для которого будет определено его место в рейтинге, затем – количество продуктов, которые займут в рейтинге более низкие места.
Типовой пример организации данных во входном файле.
Типовой пример организации данных во входном файле приводится только в демонстрационном варианте ЕГЭ!5
30 50
100 155
150 170
10 160
120 55
При таких исходных данных порядок расположения продуктов в рейтинге следующий: 4, 1, 2, 3, 5. Последним займёт своё место в рейтинге продукт 3.
При этом один продукт займёт в рейтинге более низкое место.
Пояснение:
Решим задание, написав программу на языке программирования Python.
def rank_products(n, products): all_dates = [] for i, (shelf, use) in enumerate(products): all_dates.append((shelf, i, 0)) # 0 = срок хранения all_dates.append((use, i, 1)) # 1 = срок после вскрытия
all_dates.sort() ranking = [0] * n front = 0 back = n - 1 placed = set() last_product = -1
for value, idx, typ in all_dates: if idx in placed: continue
if typ == 0: # срок хранения ranking[front] = idx + 1 front += 1 else: # срок годности после вскрытия ranking[back] = idx + 1 back -= 1
placed.add(idx) last_product = idx + 1
if len(placed) == n: break
last_pos = ranking.index(last_product) lower_count = n - last_pos - 1
return last_product, lower_count
# Читаем данные из файла with open('input.txt') as f: lines = f.read().splitlines()
n = int(lines[0]) products = [tuple(map(int, line.split())) for line in lines[1:]]
last_product, lower_count = rank_products(n, products)
print(f"{last_product} {lower_count}") |
Таким образом,
564 — номер последнего продукта, для которого будет определено его место в рейтинге,
444 — количество продуктов, которые займут в рейтинге более низкие места.
Показать ответ
564 444
Источник: Демонстрационный вариант ЕГЭ — 2026
Сообщить об ошибке
Тест с похожими заданиями