Я столкнулся с интересной проблемой программирования, с которой я не могу сформулировать решение. Предположим, у вас есть K шаров из N разных цветов. Вы должны разбить все шары на максимально возможное количество групп, чтобы две группы не были одинаковыми. (Две группы считаются одинаковыми, если они имеют одинаковое количество шаров каждого цвета.) Какое максимальное количество групп вы можете сделать?
ограничения: 1 <= К <= 50, 1 <= N <= 14
Чтобы уточнить: нам нужен алгоритм, который принимает массив из целых чисел >= 1. Размер массива равен N, а сумма значений, которые он содержит, равна K. Алгоритм должен возвращать максимальное количество групп.
Любые идеи по алгоритмическому подходу к этой проблеме?