Optimize
Use range-based loops
Change coding style
Fix bug where Node was not hashable
Change the way State is printed
Change the problem