Tuesday, June 16, 2015

UVa 10130 - SuperSale

// 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