If I were to go back and try to do it the "right" way, I'd need a whole different way to model the ALU. It's not that it has to perform the operations; it's more like I have to make it reverse-engineer possible inputs from desired outputs. That's fine under many circumstances...
So...Day 18 I worked on a LOT, and I think where I left it it's a brain bug and not a code bug that's stopping me. The example my program is getting wrong I did by hand, and I STILL got it wrong (the same way), so I think I'm misunderstanding the specs. May go back to that later.
While this prevented my memory from being blown out, it was distressingly slow. I was actually just going to let it run and come back to it, but then I realized I could let it run AND keep working on it, so while the slow version was chugging along... (4/?)
So for my second try at an algorithm, I eventually got to something approximating a DFS, except that I would generate child nodes as needed as I was traversing, and then once they were counted, I could abandon them as the traversal continued breadth-wise. But! (3/?)