#ddcc2017qualc. [ddcc2017_qual_c]収納

[ddcc2017_qual_c]収納

问题描述

NN 根棒子,第 i(1iN)i(1≦i≦N) 根棒子的长度为 LiL_i

现在要将它们放入长度为 CC 的盒子中。

盒子可以容纳 11 根或 22 根棒子,但放入棒子的条件是:

  • 如果要放入 11 根棒子,棒子的长度为 aa,则 aCa≦C
  • 如果要放入 22 根棒子,棒子的长度为 a,ba,b,则 a+b+1Ca+b+1≦C

求需要多少个盒子才能放入所有的棒子。

约束条件

  • 1N1000001≦N≦100000
  • 1C1091≦C≦10^9
  • 1LiC1≦L_i≦C
  • 输入为整数

输入

从标准输入读取输入,输入的格式如下:

NN CC L1L_1 : L_N$

输出

输出需要最少 xx 个盒子。

示例 1

4 10
2
8
4
5

输出示例 1

3

将第三根和第四根棒子放入同一个盒子,将第一根和第二根棒子分别放入两个不同的盒子,这样就需要3个盒子。

示例 2

3 10
1
1
1

输出示例 2

2

请注意,每个盒子最多只能放入2根棒子。

示例 3

9 30
22
5
2
18
6
21
29
11
18

输出示例 3

5