{"id":1513,"date":"2020-07-01T09:32:12","date_gmt":"2020-07-01T09:32:12","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1513"},"modified":"2022-03-21T11:22:30","modified_gmt":"2022-03-21T11:22:30","slug":"fair-distribution-of-chocolates","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/","title":{"rendered":"Fair Distribution of Chocolates"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Binary Search<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Hard<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>Given number of chocolates in <code>N<\/code> different bags and <code>M<\/code> children. Every kid will get some consecutive bags. The task is to distribute chocolates in such a way that the maximum number of chocolates assigned to a kid is <code>minimum<\/code>.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/searching\/MINCHOC\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<p><strong>EXAMPLE<\/strong> :<\/p>\n<pre><code>Input : chocolates[] = {12, 34, 67, 90}\n        M = 2\n\nOutput : 113\n\nExplanation:\n\nThere are 2 kids. Chocolates can be distributed in following fashion :\n\n  1) [12] and [34, 67, 90]\n      Max number of chocolates is allocated to kid \n      2 with 34 + 67 + 90 = 191 chocolates\n\n  2) [12, 34] and [67, 90]\n      Max number of chocolates is allocated to kid\n      2 with 67 + 90 = 157 chocolates \n\n  3) [12, 34, 67] and [90]\n      Max number of chocolates is allocated to student \n      1 with 12 + 34 + 67 = 113 chocolates\n\nOf the 3 cases, Option 3 has the minimum chocolates = 113. <\/code><\/pre>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<ol>\n<li>\n<p>The idea is to use <code>Binary Search<\/code>.  <\/p>\n<\/li>\n<li>\n<p>We initialize <code>minimum<\/code> and <code>maximum<\/code> as <code>0<\/code> and <code>sum-of-all-chocolates<\/code> respectively.<\/p>\n<\/li>\n<li>\n<p>We fix a value for the number of chocolates as <code>mid<\/code> of current <code>minimum<\/code> and <code>maximum<\/code>.<\/p>\n<\/li>\n<li>\n<p>If a current <code>mid<\/code> can be a feasible solution, then we search on the lower half, else we search in higher half.<\/p>\n<\/li>\n<li>\n<p>Before that we need to check if <code>mid<\/code> value is feasible or not. <\/p>\n<\/li>\n<li>\n<p>Basically, we need to check if we can distribute chocolates to all children in a way that the maximum number doesn\u2019t exceed current value. To do this, we sequentially assign chocolates to every kid while the current number of assigned chocolates doesn\u2019t exceed the value.<\/p>\n<\/li>\n<li>\n<p>In this process, if the number of kids becomes more than <code>M<\/code>, then the solution is not feasible. Else feasible.<\/p>\n<\/li>\n<\/ol>\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_1518 {\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_1518 .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_1518 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1518 .wpsm_nav-tabs > li.active > a, #tab_container_1518 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1518 .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_1518 .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_1518 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1518 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1518 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1518 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1518 .wpsm_nav-tabs > li > a:hover , #tab_container_1518 .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_1518 .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_1518 .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_1518 .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_1518 .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_1518 .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_1518 .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_1518 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1518 .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_1518 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1518 .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_1518 .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_1518\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1518\">\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_1518_1\" aria-controls=\"tabs_desc_1518_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_1518_2\" aria-controls=\"tabs_desc_1518_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_1518_3\" aria-controls=\"tabs_desc_1518_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_1518\">\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_1518_1\">\r\n\t\t\t\t\t\t\t\t\r\n\r\n<!-- 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\r\n#include &lt;stdio.h&gt;\r\n#include &lt;limits.h&gt;\r\n\r\n\/\/function for finding if assumed minimum is possible or not\r\nint isPossible(int *arr, int n, int m, long long curr_min){\r\n\r\n  long long  curr_sum = 0;\r\n  int studentRequired = 1;\r\n  for(int i=0; i&lt;n; i++){\r\n    \/* if any value in array is greater than current minimum\r\n      value then it is not a valid value and therefore return *\/\r\n    if(arr[i] &gt; curr_min)\r\n      return 0;\r\n\r\n    if(arr[i] + curr_sum &gt; curr_min){\r\n\r\n      studentRequired++;\r\n      curr_sum = arr[i];\r\n      \/* if at any point required student becomes greater\r\n          than actual student return false *\/\r\n      if(studentRequired &gt; m)\r\n        return 0;\r\n    }\r\n    else{\r\n      curr_sum += arr[i];\r\n    }\r\n  }\r\n  return 1;\r\n}\r\n\r\nlong long solution(int *arr, int n, int m){\r\n\r\n  long long  sum = 0;\r\n  \/\/finding sum of all elements\r\n  for(int i=0 ;i&lt;n; i++)\r\n    sum += arr[i];\r\n\r\n  \/\/if books are less than students\r\n  if(n &lt; m)\r\n    return -1;\r\n\r\n  \/\/assume minimum pages to be start and maximum pages to be end\r\n  int start = 0;\r\n  int end = sum;\r\n\r\n  long long result = LLONG_MAX;\r\n\r\n  while(start &lt;= end){\r\n    \/\/we assume that this mid value can be our minimum pages\r\n    long long mid = start + (end - start) \/ 2;\r\n\r\n    \/* if mid value is possible, store it and \r\n    go on searching for a lower value of mid *\/\r\n    if(isPossible(arr, n, m, mid)){\r\n\r\n      if(mid &lt; result)\r\n        result = mid;\r\n      end = mid - 1;\r\n    }\r\n    \/* if not possible search in the right half\r\n      for a possible value *\/\r\n    else{\r\n      start = mid + 1;\r\n    }\r\n  }\r\n  return result;\r\n}\r\n\r\nint main()\r\n{\r\n  int t; scanf(\"%d\", &amp;t);\r\n  while(t--){\r\n    int n, k; scanf(\"%d\", &amp;n);\r\n    int arr[n];\r\n    for(int i=0; i&lt;n; i++){\r\n      scanf(\"%d\", &amp;arr[i]);\r\n    }\r\n    scanf(\"%d\", &amp;k);\r\n\r\n    printf(\"%lld&#92;n\", solution(arr, n, k));\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_1518_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\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\n\/\/function for finding if assumed minimum is possible or not\r\nint isPossible(int *arr, int n, int m, long long curr_min){\r\n\r\n  long long  curr_sum = 0;\r\n  int studentRequired = 1;\r\n  for(int i=0; i&lt;n; i++){\r\n    \/* if any value in array is greater than current minimum\r\n      value then it is not a valid value and therefore return *\/\r\n    if(arr[i] &gt; curr_min)\r\n      return 0;\r\n\r\n    if(arr[i] + curr_sum &gt; curr_min){\r\n\r\n      studentRequired++;\r\n      curr_sum = arr[i];\r\n      \/* if at any point required student becomes greater\r\n          than actual student return false *\/\r\n      if(studentRequired &gt; m)\r\n        return 0;\r\n    }\r\n    else{\r\n      curr_sum += arr[i];\r\n    }\r\n  }\r\n  return 1;\r\n}\r\n\r\nint solution(int *arr, int n, int m){\r\n\r\n  long long  sum = 0;\r\n  \/\/finding sum of all elements\r\n  for(int i=0 ;i&lt;n; i++)\r\n    sum += arr[i];\r\n\r\n  \/\/if books are less than students\r\n  if(n &lt; m)\r\n    return -1;\r\n\r\n  \/\/assume minimum pages to be start and maximum pages to be end\r\n  int start = 0;\r\n  int end = sum;\r\n\r\n  long long result = INT_MAX;\r\n\r\n  while(start &lt;= end){\r\n    \/\/we assume that this mid value can be our minimum pages\r\n    long long mid = start + (end - start) \/ 2;\r\n\r\n    \/* if mid value is possible, store it and \r\n    go on searching for a lower value of mid *\/\r\n    if(isPossible(arr, n, m, mid)){\r\n\r\n      result = min(result, mid);\r\n      end = mid - 1;\r\n    }\r\n    \/* if not possible search in the right half\r\n      for a possible value *\/\r\n    else{\r\n      start = mid + 1;\r\n    }\r\n  }\r\n  return result;\r\n}\r\n\r\nint main()\r\n{\r\n  int t; cin&gt;&gt;t;\r\n  while(t--){\r\n    int n, k; cin&gt;&gt;n;\r\n    int arr[n];\r\n    for(int i=0; i&lt;n; i++){\r\n      cin&gt;&gt;arr[i];\r\n    }\r\n    cin&gt;&gt;k;\r\n\r\n    cout&lt;&lt;solution(arr, n, k)&lt;&lt;\"&#92;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_1518_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\n\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main {\r\n\r\n  \/\/function for finding if assumed minimum is possible or not\r\n  static boolean isPossible(int []arr, int n, int m, long curr_min){\r\n\r\n    long curr_sum = 0;\r\n    int studentRequired = 1;\r\n    for(int i=0; i&lt;n; i++){\r\n      \/* if any value in array is greater than current minimum\r\n        value then it is not a valid value and therefore return *\/\r\n      if(arr[i] &gt; curr_min)\r\n        return false;\r\n\r\n      if(arr[i] + curr_sum &gt; curr_min){\r\n\r\n        studentRequired++;\r\n        curr_sum = arr[i];\r\n        \/* if at any point required student becomes greater\r\n            than actual student return false *\/\r\n        if(studentRequired &gt; m)\r\n          return false;\r\n      }\r\n      else{\r\n        curr_sum += arr[i];\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n\r\n  static long solution(int []arr, int n, int m){\r\n\r\n    long  sum = 0;\r\n    \/\/finding sum of all elements\r\n    for(int i=0 ;i&lt;n; i++)\r\n      sum += arr[i];\r\n\r\n    \/\/if books are less than students\r\n    if(n &lt; m)\r\n      return -1;\r\n\r\n    \/\/assume minimum pages to be start and maximum pages to be end\r\n    long start = 0;\r\n    long end = sum;\r\n\r\n    long result = Long.MAX_VALUE;\r\n\r\n    while(start &lt;= end){\r\n      \/\/we assume that this mid value can be our minimum pages\r\n      long mid = start + (end - start) \/ 2;\r\n\r\n      \/* if mid value is possible, store it and \r\n      go on searching for a lower value of mid *\/\r\n      if(isPossible(arr, n, m, mid)){\r\n\r\n        result = Math.min(result, mid);\r\n        end = mid - 1;\r\n      }\r\n      \/* if not possible search in the right half\r\n        for a possible value *\/\r\n      else{\r\n        start = mid + 1;\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  public static void main(String args[]) throws IOException {\r\n\r\n    Scanner sc = new Scanner(System.in);\r\n    int t = sc.nextInt();\r\n    while(t != 0){\r\n      int n  = sc.nextInt();\r\n      int arr[] = new int[n];\r\n      for(int i=0; i&lt;n; i++){\r\n        arr[i] = sc.nextInt();\r\n      }\r\n      int k  = sc.nextInt();\r\n      System.out.println(solution(arr, n, k));\r\n      t--;\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\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_1518 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_1518 a\"),jQuery(\"#tab-content_1518\"));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> is O(1) <\/p>\n<p>[forminator_quiz id=&quot;1532&quot;]<\/p>\n<p>So, in this blog, we have tried to explain binary search. If you want to solve more questions on Searching, which are curated by our expert mentors at PrepBytes, you can follow this link <a href=\"https:\/\/mycode.prepbytes.com\/interview-coding\/practice\/searching\">Searching<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Binary Search DIFFICULTY LEVEL: Hard PROBLEM STATEMENT(SIMPLIFIED): Given number of chocolates in N different bags and M children. Every kid will get some consecutive bags. The task is to distribute chocolates in such a way that the maximum number of chocolates assigned to a kid is minimum. EXAMPLE : Input : chocolates[] = [&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":[136],"tags":[],"class_list":["post-1513","post","type-post","status-publish","format-standard","hentry","category-binary-search"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Binary Search | Fair Distribution of Chocolates | Prepbytes<\/title>\n<meta name=\"description\" content=\"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.\" \/>\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\/fair-distribution-of-chocolates\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Binary Search | Fair Distribution of Chocolates | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\" \/>\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-01T09:32:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-21T11:22:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Fair Distribution of Chocolates\",\"datePublished\":\"2020-07-01T09:32:12+00:00\",\"dateModified\":\"2022-03-21T11:22:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\"},\"wordCount\":224,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png\",\"articleSection\":[\"binary search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\",\"name\":\"Binary Search | Fair Distribution of Chocolates | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png\",\"datePublished\":\"2020-07-01T09:32:12+00:00\",\"dateModified\":\"2022-03-21T11:22:30+00:00\",\"description\":\"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"binary search\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/binary-search\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Fair Distribution of Chocolates\"}]},{\"@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":"Binary Search | Fair Distribution of Chocolates | Prepbytes","description":"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.","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\/fair-distribution-of-chocolates\/","og_locale":"en_US","og_type":"article","og_title":"Binary Search | Fair Distribution of Chocolates | Prepbytes","og_description":"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.","og_url":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:32:12+00:00","article_modified_time":"2022-03-21T11:22:30+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Fair Distribution of Chocolates","datePublished":"2020-07-01T09:32:12+00:00","dateModified":"2022-03-21T11:22:30+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/"},"wordCount":224,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png","articleSection":["binary search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/","url":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/","name":"Binary Search | Fair Distribution of Chocolates | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png","datePublished":"2020-07-01T09:32:12+00:00","dateModified":"2022-03-21T11:22:30+00:00","description":"It Is to Use Binary Search.we Initialize Minimum and Maximum as 0 and Sum-of-all-chocolates.we Fix a Value for the Number of Chocolates as Mid of Current Minimum and Maximum.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645098742524-Article_311.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/fair-distribution-of-chocolates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"binary search","item":"https:\/\/prepbytes.com\/blog\/category\/binary-search\/"},{"@type":"ListItem","position":3,"name":"Fair Distribution of Chocolates"}]},{"@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\/1513","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=1513"}],"version-history":[{"count":6,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1513\/revisions"}],"predecessor-version":[{"id":8115,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1513\/revisions\/8115"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}