{"id":2242,"date":"2020-07-29T07:34:55","date_gmt":"2020-07-29T07:34:55","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2242"},"modified":"2022-03-30T13:29:02","modified_gmt":"2022-03-30T13:29:02","slug":"monopoly-again","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/monopoly-again\/","title":{"rendered":"MONOPOLY AGAIN"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.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>Medium.<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT(SIMPLIFIED):<\/h3>\n<blockquote>\n<p>After having lost to you the last time, your friend challenges you to another round of Monopoly. This time, he changes the rules of the game slightly, hoping that this would throw you off your game and he would finally have his sweet revenge. Your task is to play optimally and win this, again!<br \/>\nThe updated rules are as follows:As before, there are N notes, having values V1,V2,&#8230;,Vn.<br \/>\nBut this time, each player can choose as many of the first X notes as he wants, where 1&lt;=X&lt;=2\u2217M, then M is updated according to the following rule M=max(X,M). M=1 initially.<br \/>\nThis continues until all the notes have been claimed. Assuming both you and your friend play optimally and that you take the first turn, calculate the maximum amount you can accumulate.<\/p>\n<\/blockquote>\n<h4>For Example :<\/h4>\n<pre><code>5\n2 7 9 4 4\n\nIn first step you take 2. M=1\nthen he takes 7 and 9. \nThen you take 4 and 4.so total is 10\nIf you take two elements in the first step\nThen M becomes 2 and he selects the rest of the 4 elements because \nX can go till 2\u2217M=4. \nSo the maximum is 10.<\/code><\/pre>\n<h4>You are encouraged to implement the above brute force and think of memoization on your own first ,before looking at the solution.<\/h4>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/dynamic-programming\/MONOPOLY2\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<p>Let&#8217;s define function f(turn ,ind,m) where turn denotes the player ,ind denotes the starting index and 2*m denotes the maximum index one can choose numbers from.<\/p>\n<p>The trick here is to maximise the sum for player1 and minimise the sum for player2 because we can only control the moves of player1.<\/p>\n<p>if(turn%2==0) ,that means it&#8217;s the turn of first player:<br \/>\n<code>val1=max(val1,tempsum+solve(turn+1,i+ind,max(x,i)))<\/code>;<\/p>\n<p>if(turn%2),that means it&#8217;s the turn of second player:<br \/>\n<code>val2<\/code>=min(<code>val2,solve(turn+1,i+ind,max(x,i))<\/code>);<\/p>\n<p>But using this recursive approach will take exponential time.<\/p>\n<\/blockquote>\n<h3>DYNAMIC PROGRAMMING:<\/h3>\n<blockquote>\n<p>To overcome repetitive computation of several sub-problems,we keep memoizing the results obtained.This drops the complexity to polynomial form.<\/p>\n<\/blockquote>\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_2243 {\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_2243 .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_2243 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2243 .wpsm_nav-tabs > li.active > a, #tab_container_2243 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2243 .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_2243 .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_2243 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2243 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2243 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2243 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2243 .wpsm_nav-tabs > li > a:hover , #tab_container_2243 .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_2243 .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_2243 .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_2243 .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_2243 .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_2243 .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_2243 .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_2243 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2243 .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_2243 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2243 .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_2243 .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_2243\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2243\">\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_2243_1\" aria-controls=\"tabs_desc_2243_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_2243_2\" aria-controls=\"tabs_desc_2243_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_2243_3\" aria-controls=\"tabs_desc_2243_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_2243\">\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_2243_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\r\n    #define ll long long\r\n    ll dp[101][101][201];\r\n    int n;\r\n\r\n    ll arr[101];\r\n     ll int max(ll x,ll y)\r\n    {\r\n    if(x&gt;y)return x;\r\n    return y;\r\n    }\r\n    ll int min(ll x,ll y)\r\n    {\r\n    if(x&lt;y)return x;\r\n    return y;\r\n    }\r\n\r\n    ll solve(int turn,int ind,int x){\r\n    if(ind==n){\r\n        return 0;\r\n    }\r\n\r\n    ll tempsum=0;\r\n\r\n    ll val1=-1;\r\n    ll val2=1000000000000000000;\r\n\r\n    if(dp[turn][ind][x]!=-1)\r\n        return dp[turn][ind][x];\r\n\r\n    for(int i=1;i&lt;=2*x &amp;&amp; (ind+i-1)&lt;n;i++){\r\n        tempsum=(tempsum+arr[ind+i-1]);\r\n        if(turn%2==0){\r\n            val1=max(val1,tempsum+solve(turn+1,i+ind,max(x,i)));\r\n        }\r\n        else{\r\n            val2=min(val2,solve(turn+1,i+ind,max(x,i)));\r\n        }\r\n    }\r\n\r\n    if(turn%2==0){\r\n        return dp[turn][ind][x]=val1;\r\n    }\r\n    else\r\n        return dp[turn][ind][x]=val2;\r\n    }\r\n\r\n    int main(){\r\n\r\n    scanf(&quot;%lld&quot;,&amp;n);\r\n\r\n    memset(dp,-1,sizeof(dp));\r\n\r\n    for(int i=0;i&lt;n;i++){\r\n        scanf(&quot;%lld&quot;,&amp;arr[i]);\r\n    }\r\n\r\n    printf(&quot;%lld&quot;,solve(0,0,1));\r\n\r\n\r\n    return 0;\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\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_2243_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    #define ll long long\r\n\r\n    ll dp[101][101][201];\r\n    int n;\r\n\r\n    ll arr[101];\r\n\r\n    ll solve(int turn,int ind,int x){\r\n    if(ind==n){\r\n        return 0;\r\n    }\r\n\r\n    ll tempsum=0;\r\n\r\n    ll val1=INT_MIN;\r\n    ll val2=INT_MAX;\r\n\r\n    if(dp[turn][ind][x]!=-1)\r\n        return dp[turn][ind][x];\r\n\r\n    for(int i=1;i&lt;=2*x &amp;&amp; (ind+i-1)&lt;n;i++){\r\n        tempsum=(tempsum+arr[ind+i-1]);\r\n        if(turn%2==0){\r\n            val1=max(val1,tempsum+solve(turn+1,i+ind,max(x,i)));\r\n        }\r\n        else{\r\n            val2=min(val2,solve(turn+1,i+ind,max(x,i)));\r\n        }\r\n    }\r\n\r\n    if(turn%2==0){\r\n        return dp[turn][ind][x]=val1;\r\n    }\r\n    else\r\n        return dp[turn][ind][x]=val2;\r\n    }\r\n\r\n    int main(){\r\n\r\n    cin&gt;&gt;n;\r\n\r\n    memset(dp,-1,sizeof(dp));\r\n\r\n    for(int i=0;i&lt;n;i++){\r\n        cin&gt;&gt;arr[i];\r\n    }\r\n\r\n    cout&lt;&lt;solve(0,0,1);\r\n\r\n\r\n    return 0;\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_2243_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.Scanner;\r\n    import java.util.*;\r\n\r\n    class HelloWorld{\r\n\r\n    long [][][] dp = new long[101][101][201];\r\n    long [] arr = new long[101];\r\n\r\n    long solve(int turn, int ind, int x, int n){\r\n        if(ind==n){\r\n            return 0;\r\n        }\r\n        long tempsum=0, val1=Integer.MIN_VALUE, val2= Integer.MAX_VALUE;\r\n\r\n        if(dp[turn][ind][x]!=-1)\r\n            return dp[turn][ind][x];\r\n\r\n        for(int i=1;i&lt;=2*x &amp;&amp; (ind+i-1)&lt;n;i++){\r\n            tempsum=(tempsum+arr[ind+i-1]);\r\n            if(turn%2==0){\r\n                val1=Math.max(val1,tempsum+solve(turn+1,i+ind,Math.max(x,i),n));\r\n            }\r\n            else{\r\n                val2=Math.min(val2,solve(turn+1,i+ind,Math.max(x,i),n));\r\n            }\r\n        }\r\n\r\n        if(turn%2==0){\r\n            return dp[turn][ind][x]=val1;\r\n        }\r\n        else{\r\n            return dp[turn][ind][x]=val2;\r\n        }\r\n    }\r\n\r\n    public static void main(String []args){\r\n        Scanner myObj = new Scanner(System.in);\r\n        int n=myObj.nextInt();\r\n        HelloWorld  h = new HelloWorld();\r\n        for(int i=0;i&lt;101;i++)\r\n            for(int j=0;j&lt;101;j++)\r\n                for(int k=0;k&lt;201;k++)\r\n                    h.dp[i][j][k]=-1;\r\n        \/\/ Arrays.fill(h.dp, -1);\r\n\r\n        for(int i=0;i&lt;n;i++){\r\n            h.arr[i]=myObj.nextLong();\r\n        }\r\n        long res = h.solve(0,0,1,n);\r\n        System.out.print(res);\r\n\r\n        \/\/ System.out.println(&quot;Hello World&quot;);\r\n    }\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\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_2243 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_2243 a\"),jQuery(\"#tab-content_2243\"));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[forminator_quiz id=&quot;2244&quot;]<br \/>\n<strong>Space complexity: O(<code>N<\/code><em><code>N<\/code><\/em><code>N<\/code>)<\/strong><\/p>\n<p>This article tried to discuss the concept of <strong>Dynamic programming<\/strong>. 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: Medium. PROBLEM STATEMENT(SIMPLIFIED): After having lost to you the last time, your friend challenges you to another round of Monopoly. This time, he changes the rules of the game slightly, hoping that this would throw you off your game and he would finally have his sweet revenge. Your task [&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-2242","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 | Monopoly Again | Prepbytes<\/title>\n<meta name=\"description\" content=\"Let&#039;s Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.\" \/>\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\/monopoly-again\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamic Programming | Monopoly Again | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Let&#039;s Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\" \/>\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-29T07:34:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T13:29:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"MONOPOLY AGAIN\",\"datePublished\":\"2020-07-29T07:34:55+00:00\",\"dateModified\":\"2022-03-30T13:29:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\"},\"wordCount\":328,\"commentCount\":1,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png\",\"articleSection\":[\"Dynamic programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\",\"name\":\"Dynamic Programming | Monopoly Again | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png\",\"datePublished\":\"2020-07-29T07:34:55+00:00\",\"dateModified\":\"2022-03-30T13:29:02+00:00\",\"description\":\"Let's Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/monopoly-again\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/monopoly-again\/#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\":\"MONOPOLY AGAIN\"}]},{\"@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 | Monopoly Again | Prepbytes","description":"Let's Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.","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\/monopoly-again\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic Programming | Monopoly Again | Prepbytes","og_description":"Let's Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.","og_url":"https:\/\/prepbytes.com\/blog\/monopoly-again\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-29T07:34:55+00:00","article_modified_time":"2022-03-30T13:29:02+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"MONOPOLY AGAIN","datePublished":"2020-07-29T07:34:55+00:00","dateModified":"2022-03-30T13:29:02+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/"},"wordCount":328,"commentCount":1,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png","articleSection":["Dynamic programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/monopoly-again\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/","url":"https:\/\/prepbytes.com\/blog\/monopoly-again\/","name":"Dynamic Programming | Monopoly Again | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png","datePublished":"2020-07-29T07:34:55+00:00","dateModified":"2022-03-30T13:29:02+00:00","description":"Let's Define Function F(turn ,ind,m) Where Turn Denotes the Player ,ind Denotes the Starting Index and 2*m Denotes the Maximum Index One Can Choose Numbers From.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/monopoly-again\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180225518-Article_417.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/monopoly-again\/#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":"MONOPOLY AGAIN"}]},{"@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\/2242","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=2242"}],"version-history":[{"count":6,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2242\/revisions"}],"predecessor-version":[{"id":8367,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2242\/revisions\/8367"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}