Algorithm design - Kleinberg, Jon (Pearson education, 2011)