The Algorithm Design Manual - Skiena, Steven S.