coursera algo1: pa3