09.1, 09.2 python

This commit is contained in:
Fedor Lyanguzov
2024-12-09 18:11:04 +03:00
parent 571ab1e7fe
commit f648cb5aa4
+8 -2
View File
@@ -47,21 +47,27 @@ def fat(data):
else: else:
emptys.append([l, l+data[i]]) emptys.append([l, l+data[i]])
l += data[i] l += data[i]
emptys = dict(enumerate(emptys))
return files, emptys return files, emptys
def t(files): def t(files):
return sum(n*(s+e-1)*(e-s)//2 for n, s, e in files) return sum(n*(s+e-1)*(e-s)//2 for n, s, e in files)
def f2(files, emptys): def f2(files, emptys):
M = len(emptys) M = len(emptys)
i = len(files)-1 i = len(files)-1
for _, s, e in reversed(files): for _, s, e in reversed(files):
for j, (l, r) in enumerate(emptys): for j, (l, r) in emptys.items():
if e-s<=r-l or s<l: if e-s<=r-l or s<l:
break break
if e-s<=r-l: if e-s<=r-l:
files[i][1] = l files[i][1] = l
files[i][2] = l+e-s files[i][2] = l+e-s
emptys[j][0] = l+e-s if l+e-s==r:
del emptys[j]
else:
emptys[j][0] = l+e-s
i -= 1 i -= 1
return t(files) return t(files)