самое основное решение - сначала сложить все ранги игроков, разделить их на два, а затем попытаться достичь этого числа, добавив игроков. Это то же самое, что собирать точные изменения, для которых, вероятно, есть хорошие алгоритмы.
это не учитывает некоторые особые случаи. например, если есть игроки 1, 1, 1, 1, 2, 2, объединение всех единиц и всех двойок - не самое справедливое распределение.
но когда что-то справедливо, это еще более сложный вопрос, приходит командная работа между хорошими игроками. Кроме того, учитывая, что рейтинг игроков, вероятно, далек от совершенства, я не уверен, что переоптимизация этого алгоритма будет продуктивной.