Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.42 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int W;
  5. int size=0;
  6. int a[300];
  7.  
  8. int mem[300][10000];
  9.  
  10.  
  11. int f(int i, int w){
  12.    
  13.     if (i == size){
  14.         return w;
  15.     }
  16.    
  17.     if (mem[i][w]){
  18.         return mem[i][w];
  19.     }
  20.    
  21.     if (w+a[i] > W)
  22.         return mem[i][w] = f(i+1, w);
  23.    
  24.     return mem[i][w] = max(f(i+1, w+a[i]), f(i+1, w)); 
  25. }
  26.  
  27. int main(){
  28.    
  29.     cin >> W;
  30.     while (cin>>a[size]) size++;
  31.     cout << f(0,0) << endl;
  32.    
  33.     return 0;  
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement