P1094 [NOIP2007 普及组] 纪念品分组 题解 C++语言
#include <bits/stdc++.h>
using namespace std;
int w;//每组纪念品价格之和的上限
int n;//购来的纪念品的总件数
int p[30005];
int main(){
cin>>w>>n;
for(int i=0;i<n;i++){
cin>>p[i];
}
sort(p,p+n);
int num=0;
for(int i=0,j=n-1;i<=j;){
if(p[i]+p[j]>w){
j--;
num++;
}
else{
i++;
j--;
num++;
}
}
cout<<num<<endl;
return 0;
}