Fundamentals of Algorithmics by Gilles Brassard