有 n 个商品,第 i 个商品的体积为 ai。你有若干个容量为 L 的背包。
在第 i 天,你希望将所有编号为 i,i+1,⋯,n−1,n 的物品装入背包带走。你将物品装入背包的策略为,依次对每个物品 k=i,i+1,⋯,n:
- 如果当前背包剩余容量大于等于 ak,则将该物品装入背包。
- 否则,则将该背包带走,并拿出一个全新的背包,回到第一步。
你想要知道,对每个 i=1,2,⋯,n,所需背包的数量 fi 是多少。
输入格式
输入的第一行包含两个整数 n 和 L。
接下来一行,包含 n 个整数 a1,a2,⋯,an.
输出格式
输出一行 n 个整数 f1,f2,⋯,fn,表示答案。
样例数据
6 3
1 2 2 2 1 2
4 4 3 2 1 1
子任务
对于所有数据,1≤n≤2×105,1≤L≤109,1≤ai≤L。
子任务编号 |
特殊性质 |
分值 |
1 |
n≤1000 |
25 |
2 |
所有的 ai 均相等 |
20 |
3 |
ai 在 [1,L] 内均匀随机生成 |
30 |
4 |
没有额外的限制 |
25 |