食堂餐位
测试数据来自 system/2959
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
时间限制:300ms 内存限制:256M
【题目描述】
随着学校办学规模的扩大,学校食堂的用餐压力也越来越大。对于食堂餐位数量的设计要兼顾成本和用餐时间,这对规划部门来说是巨大的挑战。
学校共有 \(n\) 名学生,已经按年级和班级的顺序依次编号为 \(1,2,…,n\),这也是他们平时用餐的顺序。通过前期调查,也得到每个学生的就餐需要的时间,即编号为 \(i\) 的学生,用餐时间为 \(t_i\)。
如果食堂设置的餐位数为 \(m\),则意味着可以有 \(m\) 人同时就餐。即一开始,第 \(1,2,…,m\) 号的学生在食堂就餐。当这些学生中的某一人率先用餐完毕,他就会马上离开食堂,编号为 \(m+1\) 的学生立即可以用餐(中间无需额外的时间)。就这样,食堂里总有 \(m\) 个学生在用餐(直到用餐快结束了或学生不够的时候)。当最所有学生都用餐完毕,整个就餐时段结束,总时长计为 \(tot\)。不难发现,\(m\) 的值越小,$totv 就会越大。众所周知,学生们的学习是要争分夺秒的,不可能让总用餐时间太长。
现在要求你来为设计食堂的餐位数,在满足用餐总时间不超过 \(tot\) 的情况下,餐位数 \(m\) 达到最小。
【输入格式】
第一行包括 \(n\) 和 \(tot\) 两个整数,意义如题目描述。
接下来的 \(n\) 行,第 \(i\) 行给出了第 \(i\) 号学生的用餐时间 \(t_i\)。
输入数据保证在不超过规定总时间tot的情况下能用餐完毕。
【输出格式】
输出在用餐总时长不超过 \(tot\) 的情况下餐位数 \(m\) 的最小值。
【输入输出样例】
Input
9 14
5
3
9
6
4
7
5
6
2
Output
4
【样例解释】
最少要设置4个餐位,总用餐时间为13。具体用餐过程如下:
最先前4个同学同时用餐,其中2号同学率先在时间3用完餐,紧接着5号同学去用餐(在时间7用完餐);
接着1号同学在时间5用完餐,紧接着6号同学去用餐(在时间12用完餐);
接着4号同学在时间6用完餐,紧接着7号同学去用餐(在时间11用完餐);
接着5号同学在时间7用完餐,紧接着8号同学去用餐(在时间13用完餐);
接着3号同学在时间9用完餐,紧接着9号同学去用餐(在时间11用完餐)。
由此可见,8号同学最晚用完餐(在时间13完成)。
【数据限制】
测试点 1-10 满足 \(1≤n≤10^4\),\(tot≤10^6\),\(1≤t_i≤10^6\)。
测试点 11-20 满足 \(1≤n≤10^5\),\(tot≤10^9\),\(1≤t_i≤10^9\)。
【来源】
Mr.he