Advertisement
Guest User

Untitled

a guest
May 3rd, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int c, M[1001][1001] = {0}, v[1001], w[1001], people, N, cap;
  6. cin >> c;
  7. while(c--) {
  8. cin >> N;
  9. for (int i = 1; i <= N; i++)
  10. cin >> v[i] >> w[i];
  11. for (int i = 1; i <= N; i++)
  12. for (int j = 0; j <= 1000; j++)
  13. 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]);
  14. int ans = 0;
  15. cin >> people;
  16. for (int i = 0; i < people; i++)
  17. cin >> cap, ans += M[N][cap];
  18. cout << ans << endl;
  19. }
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement