class MainActivity: def main(self): # Read the data n = int(input()) nums = list(map(int, filter(lambda x: len(x) > 0, input().split(' ')))) # Get the result result = self.__quickSelect(nums, 2, 0, len(nums) - 1) print(result) def __quickSelect(self, nums, k, start, end): # Initialization leftPtr = start rightPtr = end pivot = nums[leftPtr] status = True # Traverse while leftPtr < rightPtr: if status: if nums[rightPtr] < pivot: nums[leftPtr] = nums[rightPtr] leftPtr += 1 status = False else: rightPtr -= 1 else: if nums[leftPtr] > pivot: nums[rightPtr] = nums[leftPtr] rightPtr -= 1 status = True else: leftPtr += 1 nums[leftPtr] = pivot # Judge if end - k + 1 == leftPtr: return pivot else: if leftPtr < end - k + 1: return self.__quickSelect(nums, k, leftPtr + 1, end) else: usedNums = end - leftPtr + 1 return self.__quickSelect(nums, k - usedNums, start, leftPtr - 1) if __name__ == '__main__': M = MainActivity() M.main()