#10327. 摩天轮 CSES

摩天轮 CSES

摩天轮

任务:

n 个孩子想要乘坐摩天轮,你的任务是为每个孩子找到一个吊舱。每个吊舱可以容纳一个或两个孩子,并且吊舱中的总重量不得超过 x。你知道每个孩子的体重。请计算所需的最小吊舱数量。

输入:

  • 第一行包含两个整数 nx:分别表示孩子的数量和吊舱的最大承载重量。
  • 第二行包含 n 个整数 p_1, p_2, ..., p_n:每个孩子的体重。

输出:

  • 输出一个整数:所需的最小吊舱数量。

约束:

  • 1 ≤ n ≤ 2 * 10^5
  • 1 ≤ x ≤ 10^9
  • 1 ≤ p_i ≤ x

示例:

输入​:

4 10
7 2 3 9

输出​:

3

说明:

  • 排序后的体重数组为 [2, 3, 7, 9]
  • 最轻和最重的孩子体重和为 2 + 9 = 11,超出了最大承载重量,所以必须单独为 9 重的孩子提供一个吊舱,剩下 2, 3, 7
  • 然后将 27 配对,剩下 3,需要一个吊舱。
  • 所以需要的吊舱数量是 3。