09.1, 09.2 python
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user