26.07 Детали на конвейерной ленте
Ошибка.
Попробуйте повторить позже
На производстве штучных изделий N деталей должны быть отшлифованы и окрашены. Для каждой детали известно время ее шлифовки и время окрашивания. Детали пронумерованы начиная с нуля. Параллельная обработка деталей не предусмотрена. На ленте транспортера имеется N мест для каждой из N деталей. На ленте транспортера детали располагают по следующему алгоритму:
– все 2N чисел, обозначающих время окрашивания и шлифовки для N деталей, упорядочивают по возрастанию;
– если максимальное число в этом упорядоченном списке – это время шлифовки конкретной детали, то деталь размещают на ленте транспортера на первое свободное место от ее начала;
– если максимальное число – это время окрашивания, то деталь размещают на первое свободное место от конца ленты транспортера;
– если число обозначает время окрашивания или шлифовки уже рассмотренной детали, то его не принимают во внимание.
Этот алгоритм применяется последовательно для размещения всех N деталей.
Определите сколько деталей будет окрашено и какой номер будет иметь последней окрашенная деталь.
Входные данные представлены в файле 26-2.txt следующим образом. Первая строка входного файла содержит
натуральное число N – количество деталей. Следующие N строк содержат пары чисел,
обозначающих соответственно время шлифовки и время окрашивания конкретной детали (все числа натуральные,
различные).
Запишите в ответе два натуральных числа через пробел: сначала количество деталей, которые будут окрашены, затем номер последней окрашенной детали.
f = open(’26_2.txt’) n = int(f.readline()) a = [list(map(int,i.split())) for i in f] t = [] #список для хранения времени, типа операции и номера на ленте для каждой детали for i in range(n): if a[i][0] > a[i][1]: t.append([a[i][0], 1, i]) else: t.append([a[i][1], 2, i]) t.sort() line_start = [] #списки для хранения деталей, которые размещаются в начале line_end = [] #списки для хранения деталей, которые размещаются в конце for i in t: #заполнение списков в зависимости от типа операции if i[1] == 1: line_start.append(i) else: line_end.append(i) print(len(line_end)) print(line_end[-1][2])
Специальные программы

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

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

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

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

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

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