某选考技术的班级组织班会活动,想把全班所有同学分配到若干个小组进行答题比赛。每个同学都有一个能力值(且能力值为大于0的整数),同个小组的同学能力值必须连续,并且同个小组成员能力值不能重复。例如:[1,2,3]是合法的分组方案,因为能力值连续:[1,2,5]不是合法的分组方案,因为能力值不连续:[1,1,2]同样不是合法的分组方案,因为出现了两个能力值为1的选手。如果有小组内人数太大少,就会因为时间不够而无法获得高分,给出一个合理的分组方案,满足所有人都恰好只分到一个小组,并且使得人数最少的组人数最多。
例如能力值分别为“1,2,2,3,4,5”进行分组,分成两种方案:
方案一,可以分(2)和(1,2,3,4,5)两组:
方案二,可以分(1,2)和(2,3,4,5)两组:
可见,方案二分组中人数最少的组人数更多,因此该方案更优。根据上述要求编写VB程序,程序运行界面如16题图所示。