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:

Software Engineering Concepts Software Engineering Fundamentals Pre-Quiz

  Software Engineering Concepts       Software Engineering Fundamentals            Pre-Quiz

Accenture Mock Quiz | Part 2

  Question  10 Incorrect Marked out of 1.00 Flag question Question text Tom and his team uses the SVN(Configuration Management Tool) to do versioning of source code. Tom has pulled out the code from the SVN server to his local machine, updated his task partially and wanted to update the work back to the SVN server. What is the actual process Tom has performed with the SVN server. Select one: a.  fork/join   b.  check out/check in c.  commit/rollback d.  check in/check out Feedback The correct answer is: check out/check in Question  11 Incorrect Marked out of 1.00 Flag question Question text Software was developed for Global Marketing. Few changes that was earlier requested was already incorporated in the delivered software. Now the client does not want the changes and requested for the previous release. Which of the below option would facilitate developer to meet the client needs. Select one: a.  Software Control Management   b.  So...

Data Formats ( XML & JSON ) XML AND JSON | Pre-Quiz

Data Formats ( XML & JSON )  XML AND JSON  Pre-Quiz  

Software Engineering Concepts Software Maintenance Test Your Understanding

  Software Engineering Concepts       Software Maintenance            Test Your Understanding

Accenture Mock Quiz | Part 4

  Question  31 Correct Marked out of 1.00 Flag question Question text What will be the output of the following Java code? class Test extends Throwable { } class Base extends Test {} public class Main { public static void main(String args[]) { try { throw new Base(); } catch(Test t) { System.out.println("Test Exception"); } finally { System.out.println("Finally block "); } } } Select one: a.  Complilation error : Bass calss can't extends Test b.  print-"Test Exception" c.  Complilation error: Test Class cant extends Throwable d.  print - "Test Exception" "Finally block "   Feedback The correct answer is: print - "Test Exception" "Finally block " Question  32 Correct Marked out of 1.00 Flag question Question text Which of the following statement(s) is/are TRUE? (i) In a non-correlated(independent) subquery, the subquery is always executed only onc...

Programming using Java Hands On - Arrays | Display array values

  Write a java program to create an array of size ‘n’ and accepts ‘n’ number of integers from the user and display all the values from an array Sample Input 1 Enter the array size 5 Enter the values 10 15 62 94 78 Sample Output 1 10 15 62 94 78 Result Description Summary of tests *Note: All the test cases might not have same weightage +------------------------------+ |3 tests run / 3 tests passed | +------------------------------+ TEST CASE PASSED

Programming using Java Hands On - Control Structures | Print Username

  Print Username Jeffy, who is going to complete the higher education in this year needs to create a simple application which accept the name of a person and welcome them with a message along with their name. She wants to read the data using the class "Scanner". Implement this scenario using Java. Sample Input 1:   Enter the name: Johson Sample Output 1: Welcome Johnson. Sample Input 2:   Enter the name: Stain Polson Sample Output 2: Welcome Stain Polson. Result Description Summary of tests *Note: All the test cases might not have same weightage +------------------------------+ | 2 tests run/ 2 tests passed | +------------------------------+

RDBMS Data Definition Language | Create Sales_info table

  Write a query to create Sales_info with constraints mentioned. Refer the below schema  Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Logic Development | Object Oriented Programming Pre Quiz

 

Subscribe to Get's Answer by Email