首页 > 代码库 > ZOJ Problem Set - 3819Average Score
ZOJ Problem Set - 3819Average Score
ZOJ Problem Set - 3819Average Score
题目链接
题目大意:给你两个班的的学生的分数(A,B班),A班有一个学生的分数没有给出。现在要求你给出这个学生分数的上下限,使得这个学生的分数满足把这个学生拿出A班放到B班,两个班的平均分都提高。
解题思路:
Sa:代表A班的学生除了要求的那种学生的总分;Sb:代表B班同学的学生的总分;
n:代表A班学生的总数; m: 代表B班同学的学生总数;
x代表该学生的分数。
满足:1.(sa + x) / n < sa/(n - 1) ; 2.(sb + x) / (m + 1) > sb / m;
得:sb/(m + 1) < x < sa/(n -1) 注意:取整的问题。
代码:
#include <cstdio>
#include <cstring>
int main () {
int T;
int n, m;
int score;
scanf ("%d", &T);
while (T--) {
int sum1 = 0;
int sum2 = 0;
scanf ("%d%d", &n, &m);
for (int i = 0; i < n - 1; i++) {
scanf ("%d", &score);
sum1 += score;
}
for (int i = 0; i < m; i++) {
scanf ("%d", &score);
sum2 += score;
}
if (sum1 % (n - 1) == 0)
sum1 = sum1 / (n - 1) - 1;
else
sum1 = sum1 / (n - 1);
sum2 = sum2 / m + 1;
printf ("%d %d\n", sum2, sum1);
}
return 0;
}
ZOJ Problem Set - 3819Average Score
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。