ZOJ Problem Set - 3819Average Score

来源:互联网 发布:淘宝有什么推广方式 编辑:程序博客网 时间:2024/05/19 14:36

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;}
0 0