洛谷:P1094 [NOIP 2007 普及组] 纪念品分组

洛谷:P1094 [NOIP 2007 普及组] 纪念品分组 题目背景NOIP2007 普及组 T2题目描述元旦快到了校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡他要把购来的纪念品根据价格进行分组但每组最多只能包括两件纪念品并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品乐乐希望分组的数目最少。你的任务是写一个程序找出所有分组方案中分组数最少的一种输出最少的分组数目。输入格式共 n2 行第一行包括一个整数 w为每组纪念品价格之和的上限。第二行为一个整数 n表示购来的纪念品的总件数 G。第 3∼n2 行每行包含一个正整数 Pi​ 表示所对应纪念品的价格。输出格式一个整数即最少的分组数目。输入输出样例输入 #1复制100 9 90 20 20 30 50 60 70 80 90输出 #1复制6说明/提示50% 的数据满足1≤n≤15。100% 的数据满足1≤n≤3×10480≤w≤2005≤Pi​≤w。题解#include iostreamusing namespace std;#include algorithmint main(){int w,n;//w为每组纪念品价格之和的上限 n表示购来的纪念品的总件数 Gcinwn;int a[30005];for(int i0;in;i){cina[i];}sort(a,an);int sum0;int l0,rn-1;while(lr){if(a[l]a[r]w){l;r--;}else{r--;}sum;}coutsumendl;system(pause);return 0;}