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

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

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

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





Сообщение: 3
ссылка на сообщение  Отправлено: 21.11.23 21:49. Заголовок: 26-125 неверные ответы


я думаю, ответы к 26-125 неверные
уже 2 программы составил, возможно, в условиях имели ввиду, что 2 минуты должно пройти после последней варки, но если поменять этот момент, то ответ ещё больше различаться будет
 
with open('26/data/26-125.txt') as f:
D, P = map(int, f.readline().split())
data = [ list(map(int, x.split())) for x in f.readlines() ]
data.sort(key=lambda x: (x[ 0 ], x[ 1 ]))
# print(data, '\n', D, P)

# D, P = 5, 2
# data = [
# [1, 6],
# [4, 9],
# [3, 1],
# [4, 5],
# [9, 11]
# ]
# data.sort(key=lambda x: (x[0], x[1]))

T = 50_000
tline = [ [ 0 ]*P for _ in range(T) ]
uses = [ False ]*P
sums = 0
maxc = 0
SUT = 24*60

def fillempt(t, p):
for i in range(t-1, 0-1, -1):
if tline[ i ][ p ] == 0:
tline[ i ][ p ] = 1
else:
break

def filltime(t, p, m):
global sums, maxc
n = m // 2
nmax = 0
for i in range(t, t+n):
tline[ i ][ p ] += 2
if i <= SUT:
nmax += 1
sums += 1
if nmax > maxc:
maxc = nmax

def findspace(t):
while tline[ t ].count(0) == 0:
t += 1
p = tline[ t ].index(0)
if uses[ p ]:
t+=2
return t, p

for i in range(D):
t, m = data[ i ]
if m >= 2:
t, p = findspace(t)
uses[ p ] = True
print(t, p, m)

fillempt(t, p)
filltime(t, p, m)

for i in range(1000):
print(tline[ i ])
print(sums, maxc)


Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет


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

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