Clarke and food
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 608 Accepted Submission(s): 357
Problem Description
Clarke is a patient with multiple personality disorder. One day, Clarke turned into a cook, was shopping for food.
Clarke has bought
n food. The volume of the
ith food is
vi. Now Clarke has a pack with volume
V. He wants to carry food as much as possible. Tell him the maxmium number he can brought with this pack.
Input
T(1≤T≤10), the number of the test cases.
For each test case:
The first line contains two integers
n,V(1≤n≤105,1≤V≤109).
The second line contains
n integers, the
ith integer denotes
vi(1≤vi≤109).
Output
For each test case, print a line with an integer which denotes the answer.
Sample Input
1 3 5 1 3 4
Sample Output
2 Hint: We can carry 1 and 3, the total volume of them is 5.
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[100010];
int main()
{
int t,n,m,i,j;
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
for(i=1;i<=n;i++)
{
if(m-a[i]<0)
break;
else
m-=a[i];
}
printf("%d\n",i-1);
}
return 0;
}