Algorithmic puzzles - Levitin, Anany (Oxford University Press, 2011)