A118193.午枫的平衡调整
普及/提高-
官方
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
在一次训练营中,有 N 名成员,被分在 3 个小组中。每名成员编号为 1∼N,当前第 i 名成员所在的小组为 Ai(取值为 1,2,3)。 同时,每名成员还有一个贡献值,第 i 名成员的贡献为 Bi。一个小组的总贡献值定义为该组内所有成员贡献值之和。
现在,小枫希望通过调整部分成员的小组归属,使得三个小组的总贡献值完全相等。你可以选择让任意数量(包括 0 个)的成员更换小组,但每次更换只能把一个成员调到另一个已有的小组中(仍然只能是 1,2,3)。
请你判断是否可以实现目标;如果可以,输出最少需要调整的人数;否则输出 −1。
输入格式
第一行输入一个整数 N;
接下来 N 行,每行两个整数 Ai,Bi,表示第 i 名成员当前所在小组及其贡献值。
输出格式
输出一个整数,表示最少需要调整的人数;如果无法实现,输出 −1。
输入输出样例
输入#1
6 1 2 2 5 1 5 3 3 1 3 3 6
输出#1
2
说明/提示
解释说明
在示例一中,可以进行如下调整:
- 将第 1 名成员从小组 1 调整到小组 3;
- 将第 4 名成员从小组 3 调整到小组 2;
此时三个小组的总贡献值都变为 8,且调整人数为 2,这是最优方案。
数据范围
对于 100% 的测试数据,满足:3≤N≤100,Ai∈{1,2,3},1≤Bi,i=1∑NBi≤1500,每个小组至少有一名成员。