Introduction to algorithms / - Cormen, Thomas H.; Leiserson, Charles Eric; Rivest, Ronald Linn (MIT press, 2009)