CS341: Algorithms