Introduction to algorithms - Cormen, Thomas H. ... [et al.]