Introduction to algorithms - Cormen, Thomas H. (MIT Press ; McGraw-Hill, 2001)