南阳理工ACM 106 背包问题

时间:2022-07-30 18:41:36

#include<stdio.h>
int main()
{
 int n,s,m,i,j,a,b,all;
 int str[15][2];
 scanf("%d",&n);
 while(n--){
  scanf("%d%d",&s,&m);
  for(i=0;i<s;i++){
   for(j=0;j<2;j++)
    scanf("%d",&str[i][j]);
  }
  all=0;
  for(;m>0;){
        a=str[0][0];
  b=0;
  for(i=0;i<s;i++){
   if(str[i][0]>a){
    a=str[i][0];
    b=i;}
  }
        if(m>=str[b][1])
   all=all+a*str[b][1];
  else if(m<str[b][1])
   all=all+a*m;
  m=m-str[b][1];
  str[b][0]=0;
  }
  printf("%d\n",all);
 }
 return 0;
}