zoukankan      html  css  js  c++  java
  • P1109 学生分组

    题目如下:

     思路:

    1.人数超过了上限或者下限,直接输出-1 这时候代码就结束了

    2.想要达到我过去 你过来 

    需要把过去的数量全部相加 (不是说我过去了,你就可以不用过去了,不在范围就是不在范围)

    与此同时 需要把过来的全部相加

    两者取最大值

    代码如下:

    #include<cstdio> 
    #include<iostream>
    using namespace std;
    int main(){
        int c=0,b=0,n,sum=0,l,r;
        cin>>n;
        int a[n];
        for(int i=0;i<n;i++){
        cin>>a[i];
        sum+=a[i];
        }
        cin>>l>>r;
        if(sum>r*n){
        cout<<"-1";
        return 0;    
        }
        if(sum<l*n){
        cout<<"-1";
        return 0;    
        }
        for(int i=0;i<n;i++)
        {    if(a[i]>r)
            c+=a[i]-r;
            if(a[i]<l)
            b+=l-a[i];
        }
        cout<<max(c,b);
        return 0;
    }
    //3
    //20 8 6
    //10 15
    
    //5 2 4 
    
    //3
    //10 20 30
    //1 18
    无聊就学习 反正没事干
  • 相关阅读:
    spring guides
    Go 汇编入门
    go内存管理
    websocket
    Scheduling In Go
    log-structured-merge-trees
    InfluxDB 内部机制解析
    thread-states
    MySQL高可用方案
    Amazon Aurora解读
  • 原文地址:https://www.cnblogs.com/miao-xixixi/p/12841958.html
Copyright © 2011-2022 走看看