day 19 part 2 solve

main
magical 2022-12-19 11:15:09 -08:00
parent c572351a00
commit ee05144644
1 changed files with 14 additions and 5 deletions

View File

@ -27,7 +27,7 @@ def parse(line):
'geode': [ore4,0,obs4,0],
}
def simulate(blueprint):
def simulate(blueprint, minutes=24):
B = blueprint
resources = [0]*4
robots = [1,0,0,0]
@ -51,7 +51,6 @@ def simulate(blueprint):
print(B_items)
minutes = 24
buckets = [[] for _ in range(minutes+1)]
def enqueue(t, robots, resources):
if t < 0 or t >= len(buckets):
@ -82,7 +81,7 @@ def simulate(blueprint):
#next = [[] for _ in range(4)]
buckets[minutes].sort(reverse=True)
print(minutes, buckets[minutes][:1])
for _, robots, resources in buckets[minutes]:
for _, robots, resources in buckets[minutes][:100000]:
can_build = 0
if robots[3]:
geodes = robots[3]*minutes + resources[3]
@ -126,6 +125,7 @@ def simulate(blueprint):
#count = sum(len(b) for b in next)
#print(count, q[:1])
print(minutes, [len(x) for x in buckets])
buckets[minutes] = []
minutes -= 1
@ -153,6 +153,15 @@ def solve(input):
print(t)
return t
assert solve(sample) == 33
solve(input)
def solve2(input):
t = 1
for idx, B in input.items():
if idx <= 3:
g = simulate(B, minutes=32)
t *= g
print(t)
return t
#assert solve(sample) == 33
solve2(input)