129) (ЕГЭ-2023) На производстве штучных изделий N деталей должны быть отшлифованы и окрашены. Для каждой детали известно время её шлифовки и время окрашивания. Детали пронумерованы начиная с единицы. Параллельная обработка деталей не предусмотрена. На ленте транспортёра имеется N мест для каждой из N деталей. На ленте транспортёра детали располагают по следующему алгоритму:
– все 2N чисел, обозначающих время окрашивания и шлифовки для N деталей, упорядочивают по возрастанию;
– если минимальное число в этом упорядоченном списке – это время шлифовки конкретной детали, то деталь размещают на ленте транспортёра на первое свободное место от её начала;
– если минимальное число – это время окрашивания, то деталь размещают на первое свободное место от конца ленты транспортёра
– если число обозначает время окрашивания или шлифовки уже рассмотренной детали, то его не принимают во внимание.
Этот алгоритм применяется последовательно для размещения всех N деталей. Определите номер последней детали, для которой будет определено её место на ленте транспортёра, и количество деталей, которые будут отшлифованы до неё.
Входные данные представлены в файле 26-129.txt следующим образом. Первая строка входного файла содержит натуральное число N (1 ≤ N ≤ 1000) – количество деталей. Следующие N строк содержат пары чисел, обозначающих соответственно время шлифовки и время окрашивания конкретной детали (все числа натуральные, различные).
Запишите в ответе два натуральных числа: сначала номер последней детали, для которой будет определено её место на ленте транспортёра, затем количество деталей, которые будут отшлифованы до неё.
моя программа
f=open('26-129-1.txt')
a=[]
n=997
for i in range(2*n):
v,t,num=f.readline().split()
a.append([int(v),t,int(num)])
b=[0]*n
k=0
p=[]
for i in range (2*n):
v,t,num=a
fl=0
for j in range(n):
if b[j]==num:
fl=1
if t=="w" and fl==0:
for j in range(n):
if b[j]==0:
b[j]=num
p=num
k=k+1
break
elif t=='q' and fl==0:
for j in range(n-1,-1,-1):
if b[j]==0:
b[j]=num
p=num
break
print(p,b,k)
ответ 944 и 489
В ответе 895 488
Второе число меня не волнует, Но вот первое. файл мы открыли в екселе добавили где шлифовка букву w, где окрасить q. И каждой из них присвоили номер детали. получилось три столбца, первый время шлифовки\окрашивания, второй это непосредственно сам тип и третий столбец это номер детали. также в екселе отсортировали по возрастанию.
3 q 535
5 w 1
10 q 112
13 q 576
16 q 267
Заполняет верно, так если бы делали в ручную. (проверили первые 10 строк, разносит в начало и конец верно).Но последняя деталь у меня отличается от ответа. Подскажите пожалуйста, что не так в программе