天天看點

hdoj--5562--Clarke and food(模拟)Clarke and food

Clarke and food

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 620    Accepted Submission(s): 361

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 i th 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 The first line contains an integer 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 i th 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 num[100100];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,v;
		memset(num,0,sizeof(num)); 
		scanf("%d%d",&n,&v);
		for(int i=0;i<n;i++)
		scanf("%d",&num[i]);
		sort(num,num+n);
		int i;
		for(i=0;i<n;i++)
		{
			if(v-num[i]<0)
			break;
			else
			v-=num[i];
		}
		printf("%d\n",i);
	}
	return 0;
}