#include <iostream> #include <algorithm> using namespace std; const int N(30009); int data[N]={0}; int comp(const void *x,const void *y) { return *(int *)x-*(int *)y; } int main() { int w,n,s(1),ans(0); cin>>w>>n; for(int i=1;i<=n;i++) cin>>data[i]; qsort(data+1,n,sizeof(int),comp); for(int i=n;i>=s;i--) { if(data[i]+data[s]<=w) s++; ans++; } cout<<ans<<endl; return 0; } /************************************************************** Problem: 2269 User: admin Language: C++ Result: Accepted Time:70 ms Memory:2380 kb ****************************************************************/