Algorithms and Computation - Cai (Springer Berlin Heidelberg, 2013)