{"id":1300,"date":"2020-07-01T09:50:45","date_gmt":"2020-07-01T09:50:45","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1300"},"modified":"2022-03-25T12:07:49","modified_gmt":"2022-03-25T12:07:49","slug":"the-last-game","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/the-last-game\/","title":{"rendered":"The Last Game"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>Sorting<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Easy<\/p>\n<\/blockquote>\n<h3>Problem Statement (Simplified):<\/h3>\n<p>Print the last number left in the array after deleting the largest number in the array then the smallest number repeatedly.<\/p>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/sorting\/GAME1\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>Test Case<\/h4>\n<pre><code>Input:\n1\n3\n2 1 3\n\nOutput:\n2\n\nExplanation:\nTeacher 1 wants to minimize the mark, so we remove the largest mark i.e. 3.\n\nTeacher 2 wants to maximize the mark, so we remove the smallest mark i.e. 1.\n\nNow, there is only 2 left, so we print 2 as our answer.<\/code><\/pre>\n<h4>Solving Approach :<\/h4>\n<p><strong>Bruteforce Approach<\/strong>:<\/p>\n<blockquote>\n<p>1) We can find the largest and smallest element and remove them from array serial wise until the last element is left in the array.<\/p>\n<p>2) This would take O(<code>N!<\/code>) in the worst time as we decrease array size by 2 in every iteration, and again iterate on the array. But this is not a very efficient approach, we can use sorting, to solve this problem more efficiently.<\/p>\n<\/blockquote>\n<p><strong>Efficient Approach<\/strong>:<\/p>\n<p><strong><em>Observation:<\/em><\/strong> We can see that size of array goes from 1 to 10<sup>6<\/sup>, in worse conditions let the size of the array be  <code>10^6<\/code> if we sort this array using any of sorting techniques i.e. <em>Bubble Sort, Insertion Sort, Selection sort<\/em>. They all take O(N<sup>2<\/sup>) in worst cases, which results in 10<sup>12<\/sup> iterations when the size of the array is 10<sup>6<\/sup>. So we, can&#8217;t choose the above three sorting algorithms. We use <strong><em>Merge Sort<\/em><\/strong> to sort array as it sorts array in <strong><em>linearithmic time complexity<\/em><\/strong> (<code>n * log(n)<\/code>).<\/p>\n<blockquote>\n<p>1) We sort the array, and can see the largest number in the array is at its very end, and the first number is the smallest number of the array.<\/p>\n<p>2) So if we remove both of them, our array becomes shorter by 2 elements and starts from <code>1st<\/code> index and ends at <code>(last index - 1)th<\/code> index.<\/p>\n<p>3) Now two cases rises:<\/p>\n<ul>\n<li><strong><em>Case-1: If the array is Odd in size<\/em><\/strong>, and we remove elements from both sides repeatedly, the last element left would be the middle element, so we print the middle element directly.<\/li>\n<li><strong><em>Case-2: If the array is Odd in size<\/em><\/strong>, and we remove elements from both sides repeatedly, the last element left would be the last smaller element. As we have to remove the largest element first, the last element left would be the last smaller element, which would be (size \/ 2)<sup>th<\/sup> element in the array. So we print the <code>(size \/ 2)th<\/code> element.<\/li>\n<\/ul>\n<\/blockquote>\n<p><strong><em>NOTE:<\/em><\/strong> We directly print the element, no iteration required.<\/p>\n<h3>Example<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/Group-198@2x.png\" alt=\"\" \/><\/p>\n<blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/Group-199@2x.png\" alt=\"\" \/><\/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_1310 {\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_1310 .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_1310 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1310 .wpsm_nav-tabs > li.active > a, #tab_container_1310 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1310 .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_1310 .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_1310 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1310 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1310 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1310 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1310 .wpsm_nav-tabs > li > a:hover , #tab_container_1310 .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_1310 .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_1310 .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_1310 .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_1310 .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_1310 .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_1310 .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_1310 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1310 .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_1310 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1310 .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_1310 .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_1310\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1310\">\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_1310_1\" aria-controls=\"tabs_desc_1310_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_1310_2\" aria-controls=\"tabs_desc_1310_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_1310_3\" aria-controls=\"tabs_desc_1310_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\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_1310_4\" aria-controls=\"tabs_desc_1310_4\" 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>Python<\/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_1310\">\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_1310_1\">\r\n\t\t\t\t\t\t\t\t\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\r\nvoid merge(int arr[], int start, int mid, int end){\r\n    int left[mid-start+1];\r\n    int right[end-mid];\r\n    for(int i=start; i&lt;mid+1; i++){\r\n        left[i-start] =  arr[i];\r\n    }\r\n    for(int i=mid+1; i&lt;=end; i++){\r\n        right[i-(mid+1)] = arr[i];\r\n    }\r\n    int leftIndex=0, rightIndex=0, arrIndex=start;\r\n    for( ; leftIndex&lt;=mid-start &amp;&amp; rightIndex&lt;end-mid; arrIndex++){\r\n        if(left[leftIndex]&lt;right[rightIndex]){\r\n            arr[arrIndex] = left[leftIndex++];\r\n        }\r\n        else{\r\n            arr[arrIndex] = right[rightIndex++];\r\n        }\r\n    }\r\n\r\n    while(leftIndex&lt;=mid-start){\r\n        arr[arrIndex++] = left[leftIndex++];\r\n    }\r\n\r\n    while(rightIndex&lt;end-mid){\r\n        arr[arrIndex++] = right[rightIndex++];\r\n    }\r\n\r\n}\r\n\r\nvoid mergeSort(int arr[], int start, int end){\r\n    if(end==start)\r\n        return;\r\n    mergeSort(arr,start,(start+end)\/2);\r\n    mergeSort(arr,((start+end)\/2)+1,end);\r\n    merge(arr,start,(start+end)\/2,end);\r\n}\r\n\r\nint main()\r\n{\r\n  int test;\r\n  scanf(&quot;%d&quot;,&amp;test);\r\n\r\n  while(test--){\r\n\r\n    int n;\r\n    scanf(&quot;%d&quot;,&amp;n);\r\n\r\n    int marks[n];\r\n    for(int i=0; i&lt;n; i++)\r\n    scanf(&quot;%d&quot;,&amp;marks[i]);\r\n\r\n    mergeSort(marks,0,n-1);\r\n    if(n%2==0)\r\n      printf(&quot;%d&#92;n&quot;,marks[(n\/2)-1]);\r\n    else\r\n      printf(&quot;%d&#92;n&quot;,marks[(n\/2)]);\r\n  }\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_1310_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\nvoid merge(int arr[], int start, int mid, int end){\r\n    int left[mid-start+1]={0};\r\n    int right[end-mid]={0};\r\n    for(int i=start; i&lt;mid+1; i++){\r\n        left[i-start] =  arr[i];\r\n    }\r\n    for(int i=mid+1; i&lt;=end; i++){\r\n        right[i-(mid+1)] = arr[i];\r\n    }\r\n    int leftIndex=0, rightIndex=0, arrIndex=start;\r\n    for( ; leftIndex&lt;=mid-start &amp;&amp; rightIndex&lt;end-mid; arrIndex++){\r\n        if(left[leftIndex]&lt;right[rightIndex]){\r\n            arr[arrIndex] = left[leftIndex++];\r\n        }\r\n        else{\r\n            arr[arrIndex] = right[rightIndex++];\r\n        }\r\n    }\r\n\r\n    while(leftIndex&lt;=mid-start){\r\n        arr[arrIndex++] = left[leftIndex++];\r\n    }\r\n\r\n    while(rightIndex&lt;end-mid){\r\n        arr[arrIndex++] = right[rightIndex++];\r\n    }\r\n\r\n}\r\n\r\nvoid mergeSort(int arr[], int start, int end){\r\n    if(end==start)\r\n        return;\r\n    mergeSort(arr,start,(start+end)\/2);\r\n    mergeSort(arr,((start+end)\/2)+1,end);\r\n    merge(arr,start,(start+end)\/2,end);\r\n}\r\n\r\nint main()\r\n{\r\n  int test;\r\n  cin&gt;&gt;test;\r\n\r\n  while(test--){\r\n\r\n    int n;\r\n    cin&gt;&gt;n;\r\n\r\n    int marks[n];\r\n    for(int i=0; i&lt;n; i++)\r\n      cin&gt;&gt;marks[i];\r\n\r\n    mergeSort(marks,0,n-1);\r\n    if(n%2==0)\r\n      cout&lt;&lt;marks[(n\/2)-1]&lt;&lt;endl;\r\n    else\r\n      cout&lt;&lt;marks[(n\/2)]&lt;&lt;endl;\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_1310_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\nimport java.io.*;\r\n\r\npublic class Main {\r\n  static void merge(int arr[], int start, int mid, int end){\r\n    int left[] = new int[mid-start+1];\r\n    int right[] = new int[end-mid];\r\n    for(int i=start; i&lt;mid+1; i++){\r\n        left[i-start] =  arr[i];\r\n    }\r\n    for(int i=mid+1; i&lt;=end; i++){\r\n        right[i-(mid+1)] = arr[i];\r\n    }\r\n    int leftIndex=0, rightIndex=0, arrIndex=start;\r\n    for( ; leftIndex&lt;=mid-start &amp;&amp; rightIndex&lt;end-mid; arrIndex++){\r\n        if(left[leftIndex]&lt;right[rightIndex]){\r\n            arr[arrIndex] = left[leftIndex++];\r\n        }\r\n        else{\r\n            arr[arrIndex] = right[rightIndex++];\r\n        }\r\n    }\r\n\r\n    while(leftIndex&lt;=mid-start){\r\n        arr[arrIndex++] = left[leftIndex++];\r\n    }\r\n\r\n    while(rightIndex&lt;end-mid){\r\n        arr[arrIndex++] = right[rightIndex++];\r\n    }\r\n\r\n  }\r\n\r\n  static void mergeSort(int arr[], int start, int end){\r\n      if(end==start)\r\n          return;\r\n      mergeSort(arr,start,(start+end)\/2);\r\n      mergeSort(arr,((start+end)\/2)+1,end);\r\n      merge(arr,start,(start+end)\/2,end);\r\n  }\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 test = sc.nextInt();\r\n\r\n    while(test--&gt;0){\r\n\r\n      int n = sc.nextInt();\r\n\r\n      int marks[] = new int[n];\r\n      for(int i=0; i&lt;n; i++)\r\n        marks[i] = sc.nextInt();\r\n\r\n      mergeSort(marks,0,n-1);\r\n      if(n%2==0)\r\n        System.out.println(marks[(n\/2)-1]);\r\n      else\r\n        System.out.println(marks[(n\/2)]);\r\n    }\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_1310_4\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"Python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"Python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\ndef merge(arr, start, mid, end):\r\n\tleft = [0 for i in range(mid - start + 1)]\r\n\tright = [0 for i in range(end - mid)]\r\n\t\r\n\tfor i in range(start, mid + 1):\r\n\t\tleft[i - start] =  arr[i]\r\n\t\r\n\tfor i in range(mid + 1, end + 1):\r\n\t\tright[i - (mid + 1)] = arr[i]\r\n\t\r\n\tleftIndex = 0\r\n\trightIndex = 0\r\n\tarrIndex = start\r\n\t\r\n\twhile leftIndex &lt;= mid - start and rightIndex &lt; end - mid:\r\n\t\r\n\t\tif(left[leftIndex] &lt; right[rightIndex]):\r\n\t\t\tarr[arrIndex] = left[leftIndex]\r\n\t\t\tleftIndex += 1\r\n\t\t\r\n\t\telse:\r\n\t\t\tarr[arrIndex] = right[rightIndex]\r\n\t\t\trightIndex += 1\r\n\t\t\r\n\t\tarrIndex += 1\r\n\t\r\n\twhile(leftIndex &lt;= mid - start):\r\n\t\tarr[arrIndex] = left[leftIndex]\r\n\t\tleftIndex += 1\r\n\t\tarrIndex += 1\r\n\t\r\n\twhile(rightIndex &lt; end - mid):\r\n\t\tarr[arrIndex] = right[rightIndex]\r\n\t\trightIndex += 1\r\n\t\tarrIndex += 1\r\n\t\r\ndef mergeSort(arr, start, end):\r\n\tif(end == start):\r\n\t\treturn\r\n\tmergeSort(arr, start, (start + end) \/\/ 2)\r\n\tmergeSort(arr, ((start + end) \/\/ 2) + 1, end)\r\n\tmerge(arr, start, (start + end) \/\/ 2, end)\r\n\r\n\r\nfor _ in range(int(input())):\r\n\r\n\tn = int(input())\r\n\tmarks = list(map(int, input().split()))\r\n\tmergeSort(marks, 0, n - 1)\r\n\r\n\tif n % 2 == 0:\r\n\t\tprint(marks[(n\/\/2) - 1])\r\n\telse:\r\n\t\tprint(marks[(n\/\/2)])\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_1310 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_1310 a\"),jQuery(\"#tab-content_1310\"));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;1345&quot;]<\/p>\n<blockquote>\n<p>where n is the size of array.<\/p>\n<\/blockquote>\n<h4>Space Complexity : O(1)<\/h4>\n<p>This article tried to discuss Sorting. Hope this blog helps you understand and solve the problem. To practice more problems on Sorting you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used Sorting Difficulty Level Easy Problem Statement (Simplified): Print the last number left in the array after deleting the largest number in the array then the smallest number repeatedly. Test Case Input: 1 3 2 1 3 Output: 2 Explanation: Teacher 1 wants to minimize the mark, so we remove the largest mark i.e. [&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":[92],"tags":[],"class_list":["post-1300","post","type-post","status-publish","format-standard","hentry","category-sorting-interview-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sorting Interview Programming | the Last Game | Prepbytes<\/title>\n<meta name=\"description\" content=\"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.\" \/>\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\/the-last-game\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sorting Interview Programming | the Last Game | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/the-last-game\/\" \/>\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:50:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-25T12:07:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.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\/the-last-game\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"The Last Game\",\"datePublished\":\"2020-07-01T09:50:45+00:00\",\"dateModified\":\"2022-03-25T12:07:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/\"},\"wordCount\":389,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png\",\"articleSection\":[\"Sorting interview programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/the-last-game\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/\",\"name\":\"Sorting Interview Programming | the Last Game | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png\",\"datePublished\":\"2020-07-01T09:50:45+00:00\",\"dateModified\":\"2022-03-25T12:07:49+00:00\",\"description\":\"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/the-last-game\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/the-last-game\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sorting interview programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/sorting-interview-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The Last Game\"}]},{\"@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":"Sorting Interview Programming | the Last Game | Prepbytes","description":"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.","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\/the-last-game\/","og_locale":"en_US","og_type":"article","og_title":"Sorting Interview Programming | the Last Game | Prepbytes","og_description":"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.","og_url":"https:\/\/prepbytes.com\/blog\/the-last-game\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:50:45+00:00","article_modified_time":"2022-03-25T12:07:49+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.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\/the-last-game\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"The Last Game","datePublished":"2020-07-01T09:50:45+00:00","dateModified":"2022-03-25T12:07:49+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/"},"wordCount":389,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png","articleSection":["Sorting interview programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/the-last-game\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/","url":"https:\/\/prepbytes.com\/blog\/the-last-game\/","name":"Sorting Interview Programming | the Last Game | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png","datePublished":"2020-07-01T09:50:45+00:00","dateModified":"2022-03-25T12:07:49+00:00","description":"We Can Find the Largest and Smallest Element and Remove Them from Array Serial Wise Until the Last Element Is Left in the Array.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/the-last-game\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1647240926076-Article_504.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/the-last-game\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Sorting interview programming","item":"https:\/\/prepbytes.com\/blog\/category\/sorting-interview-programming\/"},{"@type":"ListItem","position":3,"name":"The Last Game"}]},{"@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\/1300","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=1300"}],"version-history":[{"count":12,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1300\/revisions"}],"predecessor-version":[{"id":8241,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1300\/revisions\/8241"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}