Форум » Массивы, сортировка, работа с файлами » 26-125 неверные ответы » Ответить

26-125 неверные ответы

vkusava73: я думаю, ответы к 26-125 неверные уже 2 программы составил, возможно, в условиях имели ввиду, что 2 минуты должно пройти после последней варки, но если поменять этот момент, то ответ ещё больше различаться будет [pre2] 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) [/pre2]

Ответов - 0



полная версия страницы