A First Course in Combinatorial Optimization by Jon Lee