• ocrosoft Contest1316


    http://acm.ocrosoft.com/problem.php?cid=1316&pid=4

    题目描述

    根据世界某权威学会的一项调查,学信息学的学生IQ非常高。举个最好的例子,如果我们把学信息学的一些学生调去学数学,那么两个竞赛的学生平均IQ都会提升!!
    现在给出一群数学竞赛全体学生的IQ和信息学竞赛全体学生的IQ,问最多能把几个学信息学的学生调去学数学,而两个竞赛的学生平均IQ都有提升呢?
    每次只调一个学生,而且每次调配,两个竞赛的学生平均IQ都要提升。

    输入

    第1行一个正整数N(N≤I00),代表数学竞赛班学生的数目;
    第2行,有N个正整数,代表每个数学学生的IQ(1到200之间);
    第3行,一个整数M(M≤100),代表信息学竞赛班学生数目;
    第4行,有M个正整数,代表每个信息学竞赛班学生的IQ(1到200之间)。
    输入数据保证信息学学生平均IQ高于数学学生。

    输出

    一个正整数,代表能从信息学调去学数学的学生的个数。

    样例输入

    3
    3 2 3
    3
    3 2 5
    

    样例输出

    1

    代码:

    #include <bits/stdc++.h>
    using namespace std;
     
    int a[10000];
    int b[10000];
     
    int main () {
        int n, m;
        int sa = 0, sb = 0, t = 0;
        int num=0;
        double aver1, aver2, a1, a2;
        scanf ("%d", &n);
        for(int i = 1; i <= n; i ++) {
            scanf ("%d", &a[i]);
            sa += a[i];
        }
        scanf("%d", &m);
        int z = m;
        for(int i = 1; i <= m; i ++) {
            scanf ("%d", &b[i]);
            sb += b[i];
        }
        sort(b, b + m);
        aver1 = (double)sa / n;
        aver2 = (double)sb / m;
        while(1) {
            num = 0;
            for(int i = 1; i <= z; i ++) {
                if ((double)(sa + b[i]) / (n + 1) > aver1 && (double)(sb - b[i]) / (m - 1) > aver2) {
                    t ++;
                    aver1 = (double)(sa + b[i]) / (n + 1);
                    aver2 = (double)(sb - b[i]) / (m - 1);
                    sa += b[i];
                    sb -= b[i];
                    n ++;
                    m --;
                    b[i] = -1;
                    sort(b, b + m);
                    continue;
                }
                num ++;
            }
            if(num == z)
                break;
        }
        printf ("%d
    ", t);
        return 0;
    }
    

      

  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9728619.html
Copyright © 2020-2023  润新知