3406:书架(水题)
- 总时间限制:
- 20000ms
- 单个测试点时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。
John共有N头奶牛(1 ≤ N ≤ 20,000),每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N头奶牛的总高度为S。书架高度为B(1 ≤ B ≤ S < 2,000,000,007).
为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助John到达书架顶层,找出使用奶牛数目最少的解决方案吧。
- 输入
- 第1行:空格隔开的整数N和B
第2~N+1行:第i+1行为整数Hi - 输出
- 能达到书架高度所使用奶牛的最少数目
- 样例输入
-
6 40 6 18 11 13 19 11
- 样例输出
-
3
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() { 5 int n,b,ans=0; 6 long sum=0; 7 cin>>n>>b; 8 int a[n]; 9 for(int i=0;i<n;i++){ 10 cin>>a[i]; 11 } 12 sort(a,a+n); 13 for(int i=n-1;i>=0;i--){ 14 sum+=a[i]; 15 ans++; 16 if(sum>=b){ 17 cout<<ans<<endl; 18 return 0; 19 } 20 } 21 22 }
越努力越幸运