Сделал скрипит, который выбирает продукты по заданному кол-ву денег. Но учитывается, чтобы вес (цена) продукта был как можно больше и чтобы потратили всё до копейки. Использовал динамическое программирование, т.е. разбил задачу на под задачи. Алгоритм которые использовал, называется «Банкомат».