Например, у нас есть массив $A
с 11 элементами (независимо от того, если нечетное число, то это может быть 5 элементов в $B
и 6 элементов в $C
или 8 элементов в $C
и 3 элемента в $C
). Результат должен соответствовать правилам из заголовка
$A = array(1, 2, 5, 7, 12, 11, 9, 13, 10, 3, 2)
$B = array(....)
$C = array(....)
которые удовлетворяют (сумма $B
элементы) — (сумма $C
элементы) = минимальное количество (0, если возможно)
Сортируйте числа в $ A, затем начните перемещать их в $ B и $ C с начала или конца $ A по мере необходимости, сохраняя их сортировку. Когда вы закончите, вы можете выполнять бинарный поиск и сдвигать элементы вперед и назад по мере необходимости для баланса. Я добавлю пример кода, если вы хотите
Других решений пока нет …