编程题
### 问题描述 假设有一批商品,每件商品的价格不同。小蓝需要将这些商品分成若干组,但每组最多只能包括两件商品,并且每组中的商品价格之和不能超过一个给定的整数。他希望能够尽可能地减少分组的数量,以便更快地完成所有商品的分发工作。请你编写一个程序,找出所有可能的分组方案中分组数最少的一种,并输出最少的分组数量。 ### 输入格式 第一行输入两个数 $n$ 和 $w$ 表示商品的个数和每组商品价格之和的上线。 第二行输入 $n$ 个整数 $a_1,a_2,...,a_n$ ,表示每种商品的价格。 ### 输出格式 输出仅一行,即最少的分组数目。 ### 样例输入 ```text 9 100 90 20 20 30 50 60 70 80 90 ``` ### 样例输出 ```text 6 ``` ### 说明 在样例中,一共分成了 $6$ 组:$[90],[90],[20,80],[20,50],[30,60],[70]$ 。 ### 评测数据规模 对于 $100$% 的评测数据,$1\leq n \leq 3\times 10^4,80\leq w \leq 200,1\leq a_i \leq w$。
查看答案
赣ICP备20007335号-2