牛客贪心题---纪念品分组

纪念品分组

  • 贪心策略:最大的先和小的组合
  • 先从小到大排列,然后从左右两边开始找符合条件的两件纪念品,如果不符合,就让右边的单独放一组
#include<bits/stdc++.h>

#define maxn 30005

using namespace std;

int a[maxn];
int main(){
    int w,n;
    cin>>w>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    int ans=0;
    for(int i=1,j=n;j>=i;j--,ans++){
        if(a[i]+a[j]<=w) i++;
    }
    cout<<ans<<"\n";
    return 0;
}
posted @ 2020-06-22 09:03  chstor  阅读(201)  评论(0编辑  收藏  举报