fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. class Knapsack{
  7. public:
  8. long long maximumValue(vector<int>& weights, vector<int>& values, int n, int capacity) {
  9. vector<long long> dp(capacity+1, 0);
  10. for(int i = 1; i <= n; ++i) {
  11. for(int j = capacity; j >= weights[i-1]; --j) {
  12. dp[j] = max(dp[j-1], values[i-1]+dp[j-weights[i-1]]);
  13. }
  14. }
  15. return dp[capacity];
  16. }
  17. };
  18.  
  19.  
  20. int main() {
  21. int n, c;
  22. cin >> n >> c;
  23. vector<int> weights(n), values(n);
  24.  
  25. for(int i = 0; i < n; ++i) {
  26. cin >> weights[i] >> values[i];
  27. }
  28.  
  29. Knapsack* obj = new Knapsack();
  30. cout << obj->maximumValue(weights, values, n, c);
  31. return 0;
  32. }
Success #stdin #stdout 0.01s 5284KB
stdin
3 8
3 30
4 50
5 60
stdout
90