Skip to main content

Unbounded Knapsack

1. You are given a number n, representing the count of items.

2. You are given n numbers, representing the values of n items.

3. You are given n numbers, representing the weights of n items.

3. You are given a number "cap", which is the capacity of a bag you've.

4. You are required to calculate and print the maximum value that can be created in the bag without 

    overflowing it's capacity.

Note: Each item can be taken any number of times. You are allowed to put the same item again 

                  and again.

Input Format

A number n

v1 v2 .. n number of elements

w1 w2 .. n number of elements

A number cap

Output Format

A number representing the maximum value that can be created in the bag without overflowing it's capacity


Constraints

1 <= n <= 20

0 <= v1, v2, .. n elements <= 50

0 < w1, w2, .. n elements <= 10

0 < cap <= 10

Sample Input

5

15 14 10 45 30

2 5 1 3 4

7

Sample Output

100


Solution:

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int val[] = new int[n],wt[] = new int[n];
            for(int i=0;i<n;i++)
                val[i] = sc.nextInt();
            for(int i=0;i<n;i++)
                wt[i] = sc.nextInt();
            int cap = sc.nextInt();
            
            int[] dp = new int[cap+1];
            dp[0] = 0;
            
            for(int i=1;i<=cap;i++){
                int cost = 0;
                for(int j=0;j<n;j++){
                    if(wt[j]<=i){
                        cost = Math.max(cost, val[j]+dp[i-wt[j]]);
                    }
                }
                dp[i] = cost;
            }
            
            System.out.println(dp[cap]);
    }
}

Comments

Must Read:

Logic Development | Object Oriented Programming Pre Quiz

 

Butterfly Pattern

  /* @ToDo  Butterfly Pattern     *                                   *     *   *                           *   *     *   *   *                   *   *   *     *   *   *   *           *   *   *   *     *   *   *...

Coin Change Combination

1. You are given a number n, representing the count of coins. 2. You are given n numbers, representing the denominations of n coins. 3. You are given a number "amt". 4. You are required to calculate and print the number of combinations of the n coins using which the       amount "amt" can be paid. Note 1: You have an infinite supply of each coin denomination i.e. same coin denomination can be                    used for many installments in payment of "amt" Note 2: You are required to find the count of combinations and not permutations i.e.                   2 + 2 + 3 = 7 and 2 + 3 + 2 = 7 and 3 + 2 + 2 = 7 are different permutations of same                    combination. You should treat them as 1 and not 3. Input Format A number n n1 n2 .. n number of elements A number amt Output Format A number representing the count of ...

Algorithm Analysis and Design Concepts Hands-On | Replace Character

 Algorithm Analysis and Design Concepts  Hands-On  Replace Character String – Replace Characters   Write a recursive function 'public static String replace(String str,char from,char to) ' that changes all occurrences of 'from' in ‘str’ to ‘to’. For example, if str were "codebook ", and from = 'o' and to = 'e', then, str would become "cedebeek". F unction Definitions: public static String replace(String str, char from, char to) Problem Requirements: Keyword Min Count Max Count for 0 0 while 0 0   Note:  Create the main() inside the class 'ReplaceDriver' Refer sample input and output for formatting specifications. Sample Input and Output : Enter the string Asia Enter the character to be replaced a Enter the character to be replaced with i The modified string is Asii Evaluation Result: Result Description Summary of tests *Note: All the test cases might not have same weightage +------------------------------+ | 8 tests run/ 8 t...

Software Engineering Concepts Hands-On

  Software Engineering Concepts  Hands-On

Palindromic Pattern

  /* @ToDo     Palindromic Pattern                 1                2   1   2            3   2   1   2   3        4   3   2   1   2   3   4    5   4   3   2   1   2   3   4   5        */ #include   <iostream> using   namespace   std ; int   main (){       #ifndef  ONLINE_JUDGE        ...

Subscribe to Get's Answer by Email