Каким образом нужно решать такие задачи?
С помощью линейного программирования.
https://www.ozon.ru/context/detail/id/139296295/ - Самое доступное введение в алгоритмы "с нуля". Книжку можно прочитать за день, зато потом не будет возникать подобных вопросов.