На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 27
ссылка на сообщение  Отправлено: 29.04.24 16:52. Заголовок: задание 26 номер 129


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 строк, разносит в начало и конец верно).Но последняя деталь у меня отличается от ответа. Подскажите пожалуйста, что не так в программе

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]







Сообщение: 332
ссылка на сообщение  Отправлено: 10.05.24 16:57. Заголовок: Ваш код у меня не за..


Ваш код у меня не запустился, т.к. нет поправленного файла.
Номер детали поправили на 1? (нумерация идет в жизни с 1, а в питоне с 0)
Вот рабочий код: (можете сравнить порядок деталей.)
 
f=open('d:/26-129.txt')
n = int(f.readline())
s = [list(map(int, c.strip().split())) for c in f.readlines()]
s = [(s[0], 1, i + 1) for i in range(len(s))] + [(s[1], 2, i + 1) for i in range(len(s))]
s=sorted(s)
konv = {}; kol=0
for c in s:
if c[1] == 1 and c[2] not in konv:
konv[c[2]] = 'on'
answer=(c[2], kol)
kol += 1
if c[1] == 2 and c[2] not in konv:
konv[c[2]] = 'on'
print(*answer)
print('Порядок деталей на конвейере:',*konv.keys())


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1280
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет