{"id":2039,"date":"2020-07-29T08:32:24","date_gmt":"2020-07-29T08:32:24","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2039"},"modified":"2022-03-23T07:50:42","modified_gmt":"2022-03-23T07:50:42","slug":"toys","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/toys\/","title":{"rendered":"TOYS"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>DYNAMIC PROGRAMMING<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Easy.<\/p>\n<\/blockquote>\n<h3>Problem Statement :<\/h3>\n<blockquote>\n<p>Once upon a time, Arya visited a toy store. As Arya is a small kid he is attracted to every toy. But Arya has a bag of capacity C and each toy occupies a definite volume of his bag. He would like to fill his bag so that when he goes home he can play with them all.<br \/>\nArya plays with each toy turn by turn and after playing with a specific toy his happiness increases by a specified amount which is different for a different toy.<br \/>\nAs a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time.<br \/>\nFind the maximum value of happiness Arya can reach.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/dynamic-programming\/TOYS1\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>EXPLANATION:<\/h3>\n<blockquote>\n<p>NOTE: This is basically a modification of knapsack problem.<\/p>\n<\/blockquote>\n<h4>BRUTE FORCE:<\/h4>\n<blockquote>\n<p>Brute force is a straightforward approach to solving a problem, usually directly based on the problem\u2019s statement and definitions of the concepts involved. If there are n items to choose from, then there will be <code>2<\/code><sup><code>n<\/code><\/sup><br \/>\npossible combinations of items for the knapsack. An item is either chosen or not chosen. A bit string of 0\u2019s and 1\u2019s is generated which is of length n. If the ith symbol of a bit string is 0, then the ith item is not chosen and if it is 1,<br \/>\nthe ith item is chosen.<\/p>\n<\/blockquote>\n<h4>ALGO:<\/h4>\n<pre><code>   let w[1], ... , w[n] be the weights of the items\n   let v[1], ... , v[n] be the values of the items\n   let maxWeight be the capacity of the bag\n   bestValue := 0\n   function solve(n, currentWeight, currentValue) {\n    if n = 0 and currentWeight &lt;= maxWeight and currentValue     bestValue:\n        bestValue := currentValue\n    if n = 0: return\n    don&#039;t pack this item\n    solve(n-1, currentWeight, currentValue)\n     pack this item\n    solve(n-1, currentWeight + w[n], currentValue + v[n])\n    }\n    solve(n, 0, 0)\n    print bestValue<\/code><\/pre>\n<p><strong>You are encouraged to implement the above brute force before looking at the solution.<\/strong><\/p>\n<blockquote>\n<p>What did you get?TLE?<br \/>\nYou got TLE because if you observe closely , you could easily see that this approach takes O(N*2<sup>n<\/sup>)<\/p>\n<\/blockquote>\n<h3>OPTIMIZATION:<\/h3>\n<h4>DYNAMIC PROGRAMMING:<\/h4>\n<blockquote>\n<p>Here\u2019s the general way the problem is explained \u2013 Consider a thief gets into a home to rob and he carries a knapsack. There are fixed number of items in the home \u2013 each with its own weight and value \u2013 Jewellery, with less weight and highest value vs tables, with less value but a lot heavy. To add fuel to the fire, the thief has an old knapsack which has limited capacity. Obviously, he can\u2019t split the table into half or jewellery into 3\/4ths. He either takes it or leaves it.<\/p>\n<p>Had it not been so,we could have easily used greedy approach.<\/p>\n<p>The way this is optimally solved is using dynamic programming \u2013 solving for smaller sets of knapsack problems and then expanding them for the bigger problem.<\/p>\n<p>We will use two variables to represent the states of DP.<\/p>\n<p><code>i<\/code> \u2013 The current index we are working on.<\/p>\n<p><code>R<\/code> \u2013 It contains the remaining capacity of each and every knapsack.<\/p>\n<p>Now, at each step, we will have k+1 choices.<\/p>\n<p>Reject index <code>i<\/code>.<\/p>\n<p>Put item <code>i<\/code> in knapsack 1.<\/p>\n<p>Put item <code>i<\/code> in knapsack 2.<\/p>\n<p>Put item <code>i<\/code> in knapsack 3.<br \/>\n\u2026<br \/>\n<code>k+1<\/code>) Put item <code>i<\/code> in knapsack k.<\/p>\n<\/blockquote>\n<p><strong>In simpler words<\/strong><\/p>\n<blockquote>\n<p>The knapsack problem is a problem in combinatorial optimization: given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. It derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most valuable items . The most famous knapsack problem is the binary <code>(<\/code>0\u20131<code>)<\/code> knapsack problem, where the decision maker is allowed to pick (1) or not to pick (0) the item, in other words, the items are not dividable.<\/p>\n<p>The problem can be formulated as follows:<\/p>\n<p>Let there be N items, x1 to xn where xi has the vi value and wi weight . The maximum weight the knapsack can carry is W. It is common to assume that all values and weights are non-negative. <\/p>\n<p>To illustrate, assume w1,w2,w3..wn are strictly positive integers. Define m[i,w] to be the maximum value that can be attained when the weight is less than or equal to  w using items up to i. The definition of  is then as follows:<\/p>\n<\/blockquote>\n<ol>\n<li><code>m[i,w]<\/code> <code>=<\/code> <code>m[i-1,w]<\/code> if <code>wi<\/code>&gt;<code>w<\/code>(the new item is more than the current weight limit)<\/li>\n<li><code>m[i,w]<\/code> <code>=<\/code> max<code>(<\/code> <code>m[i-1,w]<\/code> ,<code>m[i-1,w-wi]+vi<\/code> <code>)<\/code> if <code>wi<\/code> `<\/li>\n<\/ol>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_2043 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_2043 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_2043 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2043 .wpsm_nav-tabs > li.active > a, #tab_container_2043 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2043 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_2043 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_2043 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2043 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2043 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2043 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2043 .wpsm_nav-tabs > li > a:hover , #tab_container_2043 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_2043 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_2043 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_2043 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_2043 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_2043 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_2043 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_2043 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2043 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_2043 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2043 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_2043 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_2043\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2043\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2043_1\" aria-controls=\"tabs_desc_2043_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2043_2\" aria-controls=\"tabs_desc_2043_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2043_3\" aria-controls=\"tabs_desc_2043_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_2043\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_2043_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n #include &lt;stdio.h&gt;\r\n     int main()\r\n    {\r\n    \/\/write your code here\r\n    int t;scanf(&quot;%d&quot;,&amp;t);\r\n    while(t--)\r\n    {\r\n    int n,c;\r\n    scanf(&quot;%d%d&quot;,&amp;n,&amp;c);\r\n    int dp[n+1][c+1];\r\n    int wt[n+1],val[n+1];\r\n    for(int i=1;i&lt;=n;i++)\r\n    scanf(&quot;%d&quot;,&amp;wt[i]);\r\n    for(int i=1;i&lt;=n;i++)\r\n    scanf(&quot;%d&quot;,&amp;val[i]);\r\n    for(int i=0;i&lt;=c;i++)\r\n    dp[0][i]=0;\r\n    for(int i=1;i&lt;=n;i++)\r\n    {\r\n      for(int j=0;j&lt;=c;j++)\r\n      {\r\n\r\n          dp[i][j]=dp[i-1][j];\r\n          if(wt[i]&lt;=j)\r\n          {\r\n            dp[i][j]=dp[i][j]&gt;dp[i-1][j-wt[i]]+val[i]?dp[i][j]:dp[i-1][j-wt[i]]+val[i];\r\n          }\r\n\r\n      }\r\n    }\r\n    printf(&quot;%d&#92;n&quot;,dp[n][c]);\r\n    }\r\n    return 0;\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2043_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits\/stdc++.h&gt;\r\n    using namespace std;\r\n\r\n    int bag(int C, int V[], int H[], int n)  \r\n    {  \r\n    int i, w; \r\n    int K[n+1][C+1]; \r\n    for (i = 0; i &lt;= n; i++) \r\n    { \r\n       for (w = 0; w &lt;= C; w++) \r\n       { \r\n           if (i==0 || w==0) \r\n               K[i][w] = 0; \r\n           else if (V[i-1] &lt;= w) \r\n                 K[i][w] = max(H[i-1] + K[i-1][w-V[i-1]],  K[i-1][w]); \r\n           else\r\n                 K[i][w] = K[i-1][w]; \r\n       } \r\n    } \r\n\r\n     return K[n][C]; \r\n    }  \r\n     int main()\r\n     {\r\n\r\n\r\n     int t;\r\n     cin&gt;&gt;t;\r\n     while(t--)\r\n     {\r\n      int n,c;\r\n     cin&gt;&gt;n&gt;&gt;c;\r\n     int v[n],h[n];\r\n     for(int i=0;i&lt;n;i++)cin&gt;&gt;v[i];\r\n     for(int i=0;i&lt;n;i++)cin&gt;&gt;h[i];\r\n\r\n      cout&lt;&lt;bag(c,v,h,n)&lt;&lt;endl;;\r\n\r\n       }    \r\n     }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2043_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\n    import java.io.*;\r\n    class Knapsack \r\n    { static int max(int a, int b) \r\n    { \r\n        return (a &gt; b) ? a : b; \r\n    } \r\n    static int knapSack(int W, int wt[], int val[], int n) \r\n    { \r\n        int i, w; \r\n        int K[][] = new int[n + 1][W + 1];  \r\n        for (i = 0; i &lt;= n; i++) { \r\n            for (w = 0; w &lt;= W; w++) { \r\n                if (i == 0 || w == 0) \r\n                    K[i][w] = 0; \r\n                else if (wt[i - 1] &lt;= w) \r\n                    K[i][w] = max( \r\n                        val[i - 1] + K[i - 1][w - wt[i - 1]], \r\n                        K[i - 1][w]); \r\n                else\r\n                    K[i][w] = K[i - 1][w]; \r\n            } \r\n        } \r\n\r\n        return K[n][W]; \r\n      } \r\n\r\n\r\n    \/\/ Driver program to test above function \r\n     public static void main(String args[]) \r\n    { Scanner sc = new Scanner(System.in);\r\n        int t= sc.nextInt();\r\n        while(t-- &gt;0 ){\r\n            int n = sc.nextInt();\r\n            int W = sc.nextInt();\r\n            int val[] = new int[n]; \r\n        int wt[] = new int[n];\r\n        for(int i=0;i&lt;n;i++)\r\n            {\r\n                wt[i] = sc.nextInt();\r\n            }\r\n            for(int i=0;i&lt;n;i++)\r\n            {\r\n                val[i] = sc.nextInt();\r\n            }\r\n    System.out.println(knapSack(W, wt, val, n)); }\r\n    } \r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_2043 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_2043 a\"),jQuery(\"#tab-content_2043\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n<strong>Space complexity<\/strong> :O<code>(n*w)<\/code><br \/>\n[forminator_quiz id=&quot;2050&quot;]<\/p>\n<p>This article tried to discuss the concept of Dynamic Programming. Hope this blog helps you understand and solve the problem. To practice more problems on Dynamic Programming you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used DYNAMIC PROGRAMMING Difficulty Level Easy. Problem Statement : Once upon a time, Arya visited a toy store. As Arya is a small kid he is attracted to every toy. But Arya has a bag of capacity C and each toy occupies a definite volume of his bag. He would like to fill his [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[126],"tags":[],"class_list":["post-2039","post","type-post","status-publish","format-standard","hentry","category-dynamic-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dynamic Programming | Toys | Prepbytes<\/title>\n<meta name=\"description\" content=\"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/toys\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamic Programming | Toys | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/toys\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-29T08:32:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-23T07:50:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"TOYS\",\"datePublished\":\"2020-07-29T08:32:24+00:00\",\"dateModified\":\"2022-03-23T07:50:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/\"},\"wordCount\":723,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\",\"articleSection\":[\"Dynamic programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/toys\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/toys\/\",\"name\":\"Dynamic Programming | Toys | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\",\"datePublished\":\"2020-07-29T08:32:24+00:00\",\"dateModified\":\"2022-03-23T07:50:42+00:00\",\"description\":\"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/toys\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/toys\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dynamic programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/dynamic-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"TOYS\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamic Programming | Toys | Prepbytes","description":"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/toys\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic Programming | Toys | Prepbytes","og_description":"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.","og_url":"https:\/\/prepbytes.com\/blog\/toys\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-29T08:32:24+00:00","article_modified_time":"2022-03-23T07:50:42+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/toys\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"TOYS","datePublished":"2020-07-29T08:32:24+00:00","dateModified":"2022-03-23T07:50:42+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/"},"wordCount":723,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png","articleSection":["Dynamic programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/toys\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/toys\/","url":"https:\/\/prepbytes.com\/blog\/toys\/","name":"Dynamic Programming | Toys | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png","datePublished":"2020-07-29T08:32:24+00:00","dateModified":"2022-03-23T07:50:42+00:00","description":"As a smart kid Arya wants to be the happiest person, help him to choose his toys. Each toy can be selected just one time. Find the maximum value of happiness Arya can reach.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/toys\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/toys\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/toys\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647243844728-Article_514.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/toys\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Dynamic programming","item":"https:\/\/prepbytes.com\/blog\/category\/dynamic-programming\/"},{"@type":"ListItem","position":3,"name":"TOYS"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=2039"}],"version-history":[{"count":10,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2039\/revisions"}],"predecessor-version":[{"id":8170,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2039\/revisions\/8170"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}