Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int c, M[1001][1001] = {0}, v[1001], w[1001], people, N, cap;
- cin >> c;
- while(c--) {
- cin >> N;
- for (int i = 1; i <= N; i++)
- cin >> v[i] >> w[i];
- for (int i = 1; i <= N; i++)
- for (int j = 0; j <= 1000; j++)
- M[i][j] = (w[i] <= j ? max(M[i-1][j], M[i-1][j-w[i]] + v[i]) : M[i][j] = M[i-1][j]);
- int ans = 0;
- cin >> people;
- for (int i = 0; i < people; i++)
- cin >> cap, ans += M[N][cap];
- cout << ans << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement