Алгоритм, логика решения.

Антон15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
15.10.2015

Есть 1000 людей. (№ 1, 2, 3, 4 и т.д.)

Каждый из людей имеет от 0 до 3 вещей, которые ему не нужны и хочет владеть 0 до 3 других вещей.

Известно отношение каждого человека к каждой вещи (нужна-ненужна). Каждая вещь имеет цену и может быть куплена.

Люди могут встречаться группами от 2 до 5 человек, обменяться или покупать-продавать вещами, но только так, чтобы все желания людей в группе были удовлетворены.

Группа признается группой лишь в том случае, если невозможно разделить ее на две группы меньшего размера, где в результате обмена или купли-продажи были удовлетворены все желания людей.   

Составьте ресурсоэкономный алгоритм, позволяющий  получить список всех возможных групп для обмена.