У вас есть список «людей» Lp и еще один список «продуктов питания» Lf.Алгоритм распространения
Каждый элемент в Lp хочет получить один или несколько элементов в Lf, но может получить только один.
Как должен быть алгоритм для определения того, какой элемент в Lf дает каждому элементу в Lp (не нужно распространять все Lf и не предоставлять всем Lp). Вы пытаетесь максимизировать количество Lp, которому присвоен Lf, который он хотел.
звучит как найти максимальное совпадение двудольного графа –
Ака, [Стабильная проблема с браком] (https://en.wikipedia.org/wiki/Stable_marriage_problem). – miku