CS161: Design and Analysis of Algorithms