ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

暑期训练10-1010

2020-08-10 15:31:16  阅读:203  来源: 互联网

标签:同学 10 接完 已接 暑期 水量 接水 now 1010


描述

学校里有一个水房,水房里一共装有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 说明】

第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 秒。

 

【数据范围】

1 ≤ n ≤ 10000,1 ≤m≤ 100 且m≤ n;

1 ≤ wi ≤ 100。

 

 

 

输入

 

 

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

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

学的接水量。

 

 

 

输出

 

 

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

 

 

样例输入

 

样例输出

 

提示

 

输入样例2

8 4

23 71 87 32 70 93 80 76

输出样例2

163

 

思路:因为接水顺序已经确定,所以只需要模拟一下接水过程就好了。
#include<bits/stdc++.h>
using namespace std;
int n,m,Time,w[10005],sum;
int main(){
    cin >> n >> m;
    for(int i = 1;i <= n;i++){
        cin >> w[i];
        w[0] += w[i];//w[0]求和
    }
    int now = m + 1; //下一个接水的编号
    while(w[0]){
        for(int i = 1;i <= m;i++){
            if(w[i] > 0){ //没接完,继续接,同时水量减少
                w[0]--;
                w[i]--;
            }
            if(!w[i]){ //此人接完水,下一个进来,同时清空
                w[i] = w[now];
                w[now] = 0;
                if(now != n) now++; //上限
            }
        }
        Time++;
    }
    cout << Time << endl;
    return 0;
}
View Code

 

标签:同学,10,接完,已接,暑期,水量,接水,now,1010
来源: https://www.cnblogs.com/Lewis28/p/13470046.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有