// UVa 10130 - SuperSale
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int t;
for (cin >> t; t; t--) {
int n;
cin >> n;
int T[31];
memset(T, 0, sizeof(T));
for (int i = 0; i < n; i++) {
int p, w;
cin >> p >> w;
for (int j = 30 - w; j >= 0; j--)
T[j + w] = max(T[j + w], T[j] + p);
}
cin >> n;
int sol = 0;
for (int i = 0; i < n; i++) {
int mw;
cin >> mw;
sol += T[mw];
}
cout << sol << endl;
}
return 0;
}
No comments:
Post a Comment