分享一道贪心解得的题目,思路不是很难,但要注意把条件设置得更巧妙一点。
#include<iostream>
#include<algorithm>
using namespace std;
int s[30001];
int main(){
int n,w;
cin>>w>>n;
for(int i=0;i<n;++i)
cin>>s[i];
sort(s,s+n);
int ans=n,a=0;
for(int i=n-1;i>a;--i){
if(s[i]+s[a]<=w){
ans--;
a++;
}
}
cout<<ans;
return 0;
}