programming solutions for Algorithms: Design and Analysis, Part 1 by Tim Roughgarden