Advertisement
knakul853

Untitled

Jul 25th, 2020
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. int dp[123][123456];
  5. int N,W,price[123],wt[123];
  6. int32_t main()
  7. {
  8.    cin >> N>>W;
  9.    for(int i=0;i<N;i++)
  10.    {
  11.        cin>> wt[i] >> price[i];
  12.    }
  13.    
  14.    for(int i=1;i<=N;i++)
  15.    {
  16.       for(int j=1;j<=W;j++)
  17.       {
  18.           if(wt[i-1]<=j)
  19.           {
  20.             dp[i][j] = max(dp[i-1][j],dp[i-1][j-wt[i-1]]+price[i-1]);
  21.           }
  22.           else
  23.           dp[i][j] = dp[i-1][j];
  24.       }
  25.    }
  26.    
  27.    cout<<dp[N][W]<<"\n";
  28.  
  29. }
  30.  
  31. ///space optimization
  32.  
  33. #include<bits/stdc++.h>
  34. using namespace std;
  35. #define int long long
  36. int dp[123456];
  37. int N,W,price[123],wt[123];
  38. int32_t main()
  39. {
  40.    cin >> N>>W;
  41.    for(int i=0;i<N;i++)
  42.    {
  43.        cin>> wt[i] >> price[i];
  44.    }
  45.    
  46.    for(int i=0;i<N;i++)
  47.    {
  48.       for(int j=W-wt[i];j>=0;j--)
  49.       {
  50.          dp[j+wt[i]] = max(dp[j+wt[i]],dp[j]+price[i]);
  51.       }
  52.    }
  53.    
  54.    cout<<dp[W]<<"\n";
  55.  
  56. }
  57.  
  58.  
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement