Идея такая:
Массив из

отсортировать по возрастанию. Тогда последовательно проходим по массиву и берем максимально возможные

, пока не наберем

. Там остаются тонкости - когда отказываться от

в пользу

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