算法训练 纪念品分组

贪心算法基本模型,将价格从大到小排序,判断最大的价格能不能与最小的价格放在一起,如果可以,将最小的价格取出,即n--,反之,什么都不做,所以最后答案就是这个循环的循环次数。

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;
}
int main()
{
    int i,sum,n,count=0;
    cin>>sum>>n;
    int a[n];
    for (i=0;i<n;i++)
    cin>>a[i];
    sort(a,a+n,cmp);
    for (i=0;i<n;)
    {
        if (a[i]+a[n-1]<=sum)
        {
            i++;
            n--;
            count++;
        }
        else
        {
            i++;
            count++;
        }
    }
    cout<<count;
}
全部评论

相关推荐

点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务