The algorithm design manual - Skiena, Steven S. (Springer, 2020)