Skip to main content

Zero One Knapsack | Recursion

 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 0 or 1 number of times. You are not 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

75


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 wt[] = new int[n], val[] = 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();
        
        System.out.println(knapsack(0,n,val,wt,cap));
    }
    
    public static int knapsack(int i,int n,int val[],int wt[],int cap){
        if(i>=n || cap<=0) 
            return 0;
        int taken = 0;
        if(cap-wt[i]>=0)
            taken = knapsack(i+1,n,val,wt,cap-wt[i]) + val[i];
        int notTaken = knapsack(i+1,n,val,wt,cap);
        
        return Math.max(taken, notTaken);
    }
}

Comments

Must Read:

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

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

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...

Accenture TFA MCQ | Part 2

  Question  26 Incorrect Mark 0.00 out of 1.00 Flag question Question text Go-Will department store wants to automate few of its functionalities.From the below options identify the functional requirements of Go-Will department store Select one or more: a.  Generate Bill for the purchased Items   b.  Add Product Details   c.  System should be up and running 24/7   d.  Response for each button click should be within 3 seconds   Feedback The correct answers are: Generate Bill for the purchased Items, Add Product Details Question  27 Incorrect Mark 0.00 out of 1.00 Flag question Question text A website for Flight Booking was developed and given to the testing team for testing. It has various fields to enter the data, out of which one of the input field will take the birth year from the user ranging from 1980 to 2060. The boundary values for testing this field are? Select one: a.  1959, 1960, 1994, 1995 b.  0, 1959, 1960, 1961,...

Logic Development | Object Oriented Programming 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...

Knights Tour

1. You are given a number n, the size of a chess board. 2. You are given a row and a column, as a starting point for a knight piece. 3. You are required to generate the all moves of a knight starting in (row, col) such that knight visits       all cells of the board exactly once. 4. Complete the body of printKnightsTour function - without changing signature - to calculate and       print all configurations of the chess board representing the route      of knight through the chess board. Use sample input and output to get more idea. Note -> When moving from (r, c) to the possible 8 options give first precedence to (r - 2, c + 1) and                 move in clockwise manner to                explore other options. Input Format A number n A number row A number col Output Format All configurations of the chess board representing route of knights thro...

Accenture Mock Quiz | Part 3

  Question  21 Correct Marked out of 1.00 Flag question Question text Identify the predicate which selects the last Employee element that is the child of the Company element? Select one: a.  /Company/Employee[first()-1] b.  /Company/Employee[1] c.  /Company/Employee[first-1] d.  /Company/Employee[last()]   Feedback The correct answer is: /Company/Employee[last()] Question  22 Incorrect Marked out of 1.00 Flag question Question text Find out the well-formed xml file Select one: a.  <book category="Web">     <bname>XML Tutorials</bname>     <pages>100</pages>     <price>$300.00</price>  </book> b.  <book category="Web">     <bname>XML Tutorials</BNAME>     <pages>100</pages>     <price>$300.00<price> <book> c.  <book category="Web">     <bname>XML Tutoria...

Subscribe to Get's Answer by Email