2857: 【例55.2】 约翰书架
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:4
解决:3
题目描述
约翰最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。
约翰共有
头奶牛( ),每头奶牛有自己的高度 ( ), 头奶牛的总高度为 。书架高度为 ( )。为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助约翰到达书架顶层,找出使用奶牛数目最少的解决方案吧。
输入
第$1$行:空格隔开的整数$N$和$B$;
第$2\sim N+1$行:第$i+1$行为整数$H_i$;。
第$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; }