#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
int cas,i,j,n,p[1024],w[1024],g[105],m,dp[1024],sum;
scanf("%d",&cas);
while(cas--)
{
sum=0;
memset(dp,0,sizeof(dp));
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d",&p[i],&w[i]);
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d",&g[i]);
for(i=0;i<n;i++)
for(j=100;j>=w[i];j--)
{
dp[j]=max(dp[j],dp[j-w[i]]+p[i]);
}
for(i=0;i<m;i++)
sum+=dp[g[i]];
printf("%d\n",sum);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/