Задание EGEINF64AB6F: Сортировка, отбор и моделирование

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Сортировка, отбор и моделирование.

Учебные темы: Массивы и последовательности чисел. Вычисление обобщённых характеристик элементов массива или числовой последовательности (суммы, произведения, среднего арифметического, минимального и максимального элементов, количества элементов, удовлетворяющих заданному условию). Линейный поиск заданного значения в массиве. Алгоритмы работы с элементами массива с однократным просмотром массива. Сортировка одномерного массива. Простые методы сортировки (метод пузырька, метод выбора, сортировка вставками). Сортировка слиянием. Быстрая сортировка массива (алгоритм QuickSort). Двоичный поиск в отсортированном массиве.

Впишите правильный ответ.

Рисунок из условия ФИПИ

Задание выполняется с использованием прилагаемых
файлов.

 

Отдел маркетинга сети продуктовых магазинов составляет рейтинг продуктов по информации об их сроках хранения с момента изготовления и после вскрытия упаковки. Для каждого продукта известен срок его хранения с момента изготовления и срок годности к употреблению после вскрытия упаковки. Продукты пронумерованы начиная с единицы.

В рейтинговом списке маркетологи располагают продукты
по следующему алгоритму:

– все 2N чисел, обозначающих срок хранения и срок годности
к употреблению для N продуктов, упорядочивают по возрастанию;

– если минимальное число в этом упорядоченном списке – срок хранения, то продукт в рейтинге занимает первое свободное место от его начала;

– если минимальное число – это срок годности к употреблению,
то продукт занимает первое свободное место от конца рейтинга;

– если число обозначает срок хранения или годности
к употреблению уже рассмотренного продукта, то его не принимают во внимание.

Этот алгоритм применяется последовательно для размещения всех
N продуктов.

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

 

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

В первой строке входного файла находится натуральное число N (N ≤ 1000) – количество продуктов. Следующие N строк содержат пары чисел, обозначающих соответственно срок хранения продукта с момента изготовления и срок годности к употреблению после вскрытия упаковки (все числа натуральные, различные).

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

 

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

5

30 50

100 155

150 170

10 160

120 55

При таких исходных данных порядок расположения продуктов
в рейтинге следующий: 4, 1, 2, 3, 5. Последним займёт своё место в рейтинге продукт 3. При этом три продукта займут более высокие места. 

 

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

 

 

Скачать файл задания (TXT, ФИПИ)


i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.10 Массивы и последовательности чисел. Вычисление обобщённых характеристик элементов массива или числовой последовательности (суммы, произведения, среднего арифметического, минимального и максимального элементов, количества элементов, удовлетворяющих заданному условию). Линейный поиск заданного значения в массиве. Алгоритмы работы с элементами массива с однократным просмотром массива. Сортировка одномерного массива. Простые методы сортировки (метод пузырька, метод выбора, сортировка вставками). Сортировка слиянием. Быстрая сортировка массива (алгоритм QuickSort). Двоичный поиск в отсортированном массиве
Тип ответа:Краткий ответ
Номер: 64AB6F
НЕ РЕШЕНО Ответить

Решение задания EGEINF64AB6F

Ответ: 9 464

Решение.

Сохраним приложенный текстовый файл под именем data.txt. Первая строка задаёт параметры задачи; её нельзя считать обычной записью данных. В программе нумерация элементов списка начинается с нуля, а номера из условия сохраняются без сдвига.

В файле 972 продуктов, номера совпадают с порядком строк после заголовка. У каждого продукта две разные величины: срок хранения и срок после вскрытия. Все 2N чисел различны, поэтому при выборе минимального числа ничья не возникает.

Для каждого числа сохраняем его значение, номер продукта и вид срока. Сортируем все эти записи по значению. Поддерживаем левую и правую границы ещё свободных мест рейтинга и множество уже размещённых продуктов.

При первом появлении продукта срок хранения отправляет его на левую свободную позицию, срок после вскрытия — на правую. Соответствующую границу сдвигаем. Второе число уже размещённого продукта пропускаем. Сохраняем номер и позицию при каждом действительном размещении, а не при каждом просмотренном числе.

Когда все продукты распределены, сохранённый номер относится к последнему размещённому продукту. Если его позиция с нуля равна p, выше стоят p продуктов, ниже — N − p − 1. Нужны более высокие места, поэтому берём p. Последовательность действий совпадает с алгоритмом условия. Время O(N log N), память O(N).

Полная программа на Python:

with open("data.txt", encoding="utf-8-sig") as f:
    n = int(f.readline())
    values = []
    for number in range(1, n + 1):
        storage, opened = map(int, f.readline().split())
        values.append((storage, number, 0))
        values.append((opened, number, 1))
used = set()
left, right = 0, n - 1
for value, number, kind in sorted(values):
    if number in used:
        continue
    used.add(number)
    if kind == 0:
        position = left
        left += 1
    else:
        position = right
        right -= 1
    last_number, last_position = number, position
print(last_number, last_position)

Проверка результата.

Последним размещён продукт 9: определяющее значение срока 95109, вид — хранение. Его место в рейтинге при нумерации с единицы равно 465. Перед ним 464 продуктов, после него 507. Для данного условия выбираем первое из этих количеств.

Ответ: 9 464.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF64AB6F.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

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