<>一、题目描述

某公司员工食堂以盒饭的方式供餐。

为将员工取餐排队时间降为0,食堂的供餐速度必须要足够快。

现在需要根据以往员工取餐的统计信息,计算出一个刚好能达到排队时间为0的最低供餐速度。

即,食堂在每个单位时间内必须至少做出多少份盒饭才能满足要求。

<>二、输入描述

第一行输入一个正整数N,表示食堂开餐时长。

第二行为一个正整数M,表示开餐前食堂已经准备好的盒饭数量;

第三行为N个正整数,用空格分割,依次表示开餐时间内按时间顺序每个单位时间进入食堂取餐的人数。

<>三、输出描述

一个整数,能满足题目要求的最低供餐速度。(每个单位时间需要做出多少份盒饭)。

<>四、补充说明

每人只能取一份盒饭。

需要满足排队时间为0,必须保证取餐员工到达食堂时,食堂库存盒饭数量不少于本次来取餐的人数。

第一个单位时间来取餐的员工只能取开餐前食堂准备好的盒饭。

每个单位时间里制作的盒饭只能供给后续单位时间来的取餐员工。食堂在每个单位时间里制作的盒饭数量是相同的。

<>五、解题思路

* 采用二分法;
* left为最小出餐速度,right为最大出餐速度 = 总人数 - 已经准备好的盒饭数量;
* 判断是否还剩余盒饭;
* 如果盒饭不够了,返回false;
* 如果盒饭足够,则剩余盒饭数量 = 目前盒饭数量 - 每个时间段的取餐人数,再加上当前时间段生产的盒饭数量;

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信