//Author:PanDaoxi
#include <iostream>
#include <algorithm>
using namespace std;
int a[10001],max_,n,cnt=0;
int main(){
cin>>max_>>n; //最大价值和数量
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int flag=1; //最小价值物品
for(int i=n;i>=flag;i--){
if(a[i]+a[flag]<=max_){
cnt++;
flag++;
}
else{
cnt++;
}
}
cout<<cnt;
return 0;
}
更多题目,敬请期待新文章:动态规划。