scripts/ege/СтатГрад № 5 Файлы/26.py

55 lines
1.1 KiB
Python
Raw Normal View History

2023-05-05 00:45:01 +03:00
with open("26.txt") as f:
data = f.read().splitlines()[1:]
nums = sorted([x.split() for x in data], key=lambda x: int(x[0]))
rec = 0
left = 0
cars = [0] * 80
bas = [0] * 20
proc = {}
for em, t, typ in nums:
em = int(em)
time = int(t)
proc[em] = (time, typ)
mx = max([int(x[0]) for x in nums])
for i in range(1, mx + 2):
crs = []
for c in cars:
if c <= 1:
crs.append(0)
else:
crs.append(c - 1)
cars = crs
bs = []
for b in bas:
if b <= 1:
bs.append(0)
else:
bs.append(b - 1)
bas = bs
if i in proc:
time, typ = proc[i]
if typ == "A":
if 0 in cars:
cars[cars.index(0)] = time
rec += 1
elif 0 in bas:
bas[bas.index(0)] = time
rec += 1
else:
left += 1
else:
if 0 in bas:
bas[bas.index(0)] = time
else:
left += 1
if i % 100 == 0:
print("done", i, mx, len(proc))
print(rec, left)