2857: 【例55.2】 约翰书架

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:3

题目描述

约翰最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。

约翰共有头奶牛(20,000),每头奶牛有自己的高度(10000),头奶牛的总高度为。书架高度为(2000000007)。

为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助约翰到达书架顶层,找出使用奶牛数目最少的解决方案吧。

输入

第$1$行:空格隔开的整数$N$和$B$;
第$2\sim N+1$行:第$i+1$行为整数$H_i$;。

输出

能达到书架高度所使用奶牛的最少数目。

样例输入 复制

6 40
6
18
11
13
19
11

样例输出 复制

3

提示

#include<bits/stdc++.h>
using namespace std;
int n,a[100000],sum,cnt;
bool cmp(int x,int y){
    return x>y;
}
int main(){
    cin>>n>>sum;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+1+n,cmp);
    for(int i=1;i<=n;i++){
        sum-=a[i];
        cnt++;
        if(sum<=0) break;
    }
    cout<<cnt;
    return 0;
}