• 接水问题


    接水问题

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1233


    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    学校里有一个水房,水房里一共装有m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。

       现在有n名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n编号,i号同学的接水量为wi。接水开始时,1到m号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j完成其接水量要求wj后,下一名排队等候接水的同学k马上接替j同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j同学第x秒结束时完成接水,则k同学第x+1 秒立刻开始接水。 若当前接水人数n’不足m,则只有n’个龙头供水,其它m-n’个龙头关闭。

       现在给出n名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。

     

    【输入】

    第1行2个整数n和m,用一个空格隔开,分别表示接水人数和龙头个数。

    第2 行n个整数 w1、w2、……、wn,每两个整数之间用一个空格隔开,wi表示 i 号同学的接水量。

     

    【输出】

    输出只有一行,1个整数,表示接水所需的总时间。

    【输入样例】

    5 3
    4 4 1 2 1
    

    【输出样例】

    4

    【提示】

    样例输入#2:

    8 4

    23 71 87 32 70 93 80 76

    样例输出#2:

    163

    提示:

    输入输出样例1解释:

    第1秒,3人接水。第1秒结束时,1、2、3号同学每人的已接水量为1,3号同学接完水,4号同学接替3号同学开始接水。

    第2秒,3人接水。第2秒结束时,1、2号同学每人的已接水量为2,4号同学的已接水量为1。

    第3秒,3人接水。第3秒结束时,1、2号同学每人的已接水量为3,4号同学的已接水量为2。4号同学接完水,5号同学接替4号同学开始接水。

    第4秒,3人接水。第4秒结束时,1、2号同学每人的已接水量为4,5号同学的已接水量为1。1、2、5号同学接完水,即所有人完成接水。

    总接水时间为4秒。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int a[1000005],w[1000005];
    int main()
    {
    
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++)cin>>a[i];
        int j=1;
        while(j<=n)
        {
            w[1]+=a[j++];
            sort(w+1,w+1+m);
        }
        cout<<w[m]<<endl;
    }
  • 相关阅读:
    java面试第八天
    java面试第七天
    java面试第六天
    java面试第五天
    java面试第四天
    SpringMVC导出Excel
    75. Autorelease机制及释放时机
    关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
    硬件十万个为什么——运放篇(五)PCB设计技巧
    eclipse到Android Studio的项目迁移
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7709854.html
Copyright © 2020-2023  润新知