#P2782. Bin Packing

Bin Packing

描述

nn 个一维物品需要装入相同的箱子中。所有箱子都有完全相同的长度 ll,并且每个物品 ii 的长度 lill_i \leq l。我们要寻找最小的箱子数 qq,使得:

  • 每个箱子最多包含 22 个物品;
  • 每个物品都被装入 qq 个箱子中的一个;
  • 装入一个箱子中的物品长度之和不超过 ll
    给定整数值 nnlll1l_1,…,lnl_n,要求你计算出最优的箱子数 qq

输入

输入的第一行包含物品的数量 nn1n1051 \leq n \leq 10^5)。第二行包含一个整数,表示箱子的长度 l10000l \leq 10000。然后有 nn 行,每行包含一个整数值,表示物品的长度。

输出

你的程序必须输出装入所有物品所需的最小箱子数。

输入示例

10  
80  
70  
15  
30  
35  
10  
80  
20  
35  
10  
30  

输出示例

6  

提示

示例实例和一个最优解如下图所示。物品按照输入顺序从 111010 编号。

来源

2005 年西南欧洲