https://medium.com/@monocosmo77/applications-of-integer-programming-part2-computer-science-305286d7acd