Nov 24, 2007 15:33
Есть 3 компании (К1, K2, K3), которые владеют элементами 3х типов (T1, T2, T3). Элементов каждого типа у каждой компании от 0 до 3.
Те, грубо говоря, бинарный кубик получился.
Есть 3 позиции (ячейки), куда нужно сложить элементы компаний.
Причем, компании и типы, в представленной выборке по позициям должны по-возможности не повторяться.
Элементы не должны повторяться - это строго.
Тип - первичный признак, компания - вторичный.
Поясню на примере:
В ячейках записаны колличество элементов соответствующего типа у каждой компании.
K/TT1T2T3K1201K2011K3010
Такое состояние элементов должно дать выборку:
K1T1K3T2K2T3
Теперь о приоритетности признаков:
-- Если соответствующего типа элементы предоставлены только одной компанией, то один из этих элементов попадает в выборку однозначно.
-- Если соответствующего типа элементы предоставлены несколькими компаниями, то в выборку попадет элемент того же типа от компании, чьи элементы в результирующей выборке представлены минимально. Если того же типа элементов у компаний больше нет, то следует делать выборку по этому же правилу, но с другим типом.
-- Вырожденные случаи типа "только у К1 есть элементы типа Т1, а у остальных ничего" решаются заполнением конечной выборки только этими элементами.
Вот такое мозго..ство.. сижу второй час... пытаюсь алгоритм написать
Вольная интерпретация:
Есть Ложки, Чашки и Блюдца трех цветов Синего, Красного и Желтого.
Нужно составить максимально разноцветный набор из максимально разных предметов.
Причем, чем цветастее, тем лучше, и бог с ним, что будут 2 Ложки и Кружка )) Зато разноцветно.
work