#include<stdio.h>
#include<stdlib.h>
typedef struct In{
int x;
int y;
};
In num[100];
/*typedef struct In{
int x;
int y;
}num[100];*/
//这样写是错的,编译过不了
int cmp(const void *a,const void *b)
{
return (*(In *)b).x-(*(In *)a).x;
}
int main()
{
int test,n,m,i,s;
scanf("%d",&test);
while(test--)
{
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d%d",&num[i].x,&num[i].y);
}
qsort(num,n,sizeof(num[0]),cmp);
for(s=i=0;i<n;i++)
{
if(m>=num[i].y)
{s+=(num[i].x*num[i].y);m-=num[i].y;}
else {s+=(num[i].x*m);break;}
}
printf("%d\n",s);
}
return 0;
}
南阳 106 背包问题
最新推荐文章于 2017-05-18 08:23:04 发布