璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:luogup1109
problems
名称学生分组
题目编号P1109
题目链接luogu.com.cn/…
来源Luogu
算法分类贪心
难易程度容易

学生分组

想法

先判断最平均的情况(最坏情况)是否在给定范围内,不在即-1。

求出所有要出的学生个数,所有要入的学生个数,取最优值。因为出的人可以入,入的人可以出。保证最不能保证的即可。

代码实现

#include<cstdio>
#include<cmath>
int line[60];
int main() {
	int n, l, r, sum = 0;
	scanf("%d", &n);
	for(int i=1; i<=n; i++) {
		scanf("%d", &line[i]);
		sum += line[i];
	}
	scanf("%d %d", &l, &r);
	if(ceil( sum*1.0 / n) > r || floor(sum*1.0/n) < l) {
		printf("-1");
		return 0;
	}
	int in = 0, out = 0;
	for(int i=1; i<=n; i++) {
		if(line[i] < l)
			in += (l - line[i]);
		else if(line[i] > r)
			out += (line[i] - r);
	}
	printf("%d", in > out ? in : out);
	return 0;
}
/app/www/public/data/pages/icpc/problems/luogup1109.txt · 最后更改: 2024/03/16 11:42 由 温婕莺