Programming assignment solutions for algorithms - Design and Analysis Part-2 Stanford Coursera MOOC