#include<stdio.h>
struct stu {
int v;
int w;
}st[15];
int main() {
int t,n,m,k,i,j,sum;
stu s;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d%d",&st[i].v,&st[i].w);
for(j=1;j<=n-1;j++)
for(i=0;i<=n-j-1;i++)
if(st[i].v<st[i+1].v)
{
s=st[i],st[i]=st[i+1],st[i+1]=s;
}
sum=0;k=0;
for(i=0;i<n;i++) {
if(st[i].w+k<=m) {
k+=st[i].w;
sum+=st[i].v*st[i].w;
}
else {
sum+=st[i].v*(m-k);
break;
}
}
printf("%d\n",sum);
}
return 0;
}
1032657 | hpu_yw | 背包问题 | Accepted | 4 | 232 | C/C++ | 10-30 21:51:30 |