首先组越少越好,只有必须新开一组时才会开,即每组都加入过了相同的实力值。排序后扫一遍,维护当前分组方案,尽量加入人数少的组,如果某些组已经连续不下去了就更新最少人数。
因为人是一个一个加的,所以组的信息具有单调性(第一维是当前最大实力值,第二维是当前人数),可以用双端队列 \(O(n)\) 维护。