您的位置:首页 > 其它

A. USB Flash Drives

2016-01-11 18:12 393 查看
time limit per test
2 seconds

memory limit per test
256 megabytes

input
standard input

output
standard output

Sean is trying to save a large file to a USB flash drive. He has n USB flash drives with capacities equal to a1, a2, ..., anmegabytes.
The file size is equal to m megabytes.

Find the minimum number of USB flash drives needed to write Sean's file, if he can split the file between drives.

Input

The first line contains positive integer n (1 ≤ n ≤ 100)
— the number of USB flash drives.

The second line contains positive integer m (1 ≤ m ≤ 105)
— the size of Sean's file.

Each of the next n lines contains positive integer ai (1 ≤ ai ≤ 1000)
— the sizes of USB flash drives in megabytes.

It is guaranteed that the answer exists, i. e. the sum of all ai is
not less than m.

Output

Print the minimum number of USB flash drives to write Sean's file, if he can split the file between drives.

Sample test(s)

input
3
5
2
1
3


output
2


input
36
232


output
3


input
25
5
10


output
1


Note

In the first example Sean needs only two USB flash drives — the first and the third.

In the second example Sean needs all three USB flash drives.

In the third example Sean needs only one USB flash drive and he can use any available USB flash drive — the first or the second.

解题说明:水题,排序然后用贪心即可。

#include<cstdio>
#include <cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int main()
{
int n,m,a[103],i,cnt;
cin >> n >> m;
for(i=0;i<n;i++)
{
cin >> a[i];
}
sort(a,a+n);
i=n-1;
cnt=0;
while(m>0)
{
m=m-a[i--];
cnt++;
}
cout << cnt<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: