Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int KnapSack(int tot_wt,int wt[],int val[],int n){
- int max_val[n+1][tot_wt+1],res=0;
- for(int i=0;i<=n;i++){
- for(int j=0;j<=tot_wt;j++){
- if(i==0|| j==0)
- max_val[i][j]=0;
- else{
- int x=(wt[i-1]<=j)? val[i-1]+max_val[i-1][j-wt[i-1]]:0;
- max_val[i][j]=max(x,max_val[i-1][j]);
- }
- if(res<max_val[i][j])
- res=max_val[i][j];
- }
- }
- return res; // or return max_val[n][tot_wt];
- }
- int main(){
- int val[] = { 60, 100, 120 };
- int wt[] = { 10, 20, 30 };
- int W = 50;
- int n = 3;
- cout << KnapSack(W, wt, val, n);
- return 0;
- }
Add Comment
Please, Sign In to add comment