题目一看就是贪心。C++福利来了:sort。
基本思路就是:要使奶牛最少那么肯定高的奶牛先啦。
直接排序一遍(从高到矮)然后while,搞定!
#include<bits/stdc++.h> #define ll long long using namespace std; ll N,B,H[20010]; bool cmp(int x,int y){return x>y;} int main(){ scanf("%lld%lld",&N,&B); for(int i=1;i<=N;i++) scanf("%lld",&H[i]); sort(H+1,H+1+N,cmp); int ans=1,sum=H[1]; while(sum<B){ ans++; sum+=H[ans]; } printf("%lld ",ans); return 0; }