CMSC 27200 1 (Spring 2018) Theory of Algorithms