На производстве штучных изделий N деталей должны быть отшлифованы и окрашены. Для каждой детали известно время её шлифовки и время окрашивания. Детали пронумерованы начиная с единицы. Параллельная обработка деталей не предусмотрена. На ленте транспортёра имеется N мест для каждой из N деталей. Места для деталей пронумерованы начиная с единицы. На ленте транспортёра детали располагают по следующему алгоритму:
— все 2N чисел, обозначающих время окрашивания и шлифовки для N деталей, упорядочивают по возрастанию;
— если минимальное число в этом упорядоченном списке — это время шлифовки конкретной детали, то деталь размещают на ленте транспортёра на первое свободное место от её начала;
— если минимальное число — это время окрашивания, то деталь размещают на первое свободное место от конца ленты транспортёра;
Этот алгоритм применяется последовательно для размещения всех N деталей. Определите сколько деталей будет отшлифовано, и деталь с каким номером окажется на позиции с номером K на ленте транспортёра.
В первой строке входного файла находится натуральное число N (N < 1000) – количество деталей и натуральное число K (K N). Следующие N строк содержат пары чисел, обозначающих соответственно время шлифовки и время окрашивания конкретной детали (все числа натуральные, различные).
Запишите в ответе два натуральных числа через пробел: сначала сколько деталей будет отшлифовано, затем номер детали, которая окажется на позиции c номером K на ленте транспортёра.
file = open(’26_12933.txt’)
count_detail, position = map(int,file.readline().split())
array_detail = []
for i in range(count_detail):
detail = list(map(int,file.readline().split()))
if detail[0] > detail[1]:
array_detail.append((detail[1],’paint’,i+1))
else:
array_detail.append((detail[0], ’grind’, i + 1))
array_detail.sort()
details = []
lenta = [0]*count_detail
for detail in array_detail:
if detail[1] == ’grind’:
for i in range(len(lenta)):
if lenta[i] == 0:
lenta[i] = detail[2]
details.append(detail)
break
else:
for i in range(len(lenta)-1,-1,-1):
if lenta[i] == 0:
lenta[i] = detail[2]
details.append(detail)
break
print(len([x for x in details if x[1] == ’grind’]), lenta[position - 1])