Design and Analysis of Algorithms, 1/e