#include <bits/stdc++.h>
using namespace std;
void max_min(vector<int>&nums,int left, int right, int &fmax, int &fmin)
{
int max_left,max_right,mid,min_left,min_right;
if (left==right)
{
fmin=fmax=nums[left];
return;
}
else if (right-left==1)
{
if (nums[left]>=nums[right])
{
fmax=nums[left];
fmin=nums[right];
}
else
{
fmax=nums[right];
fmin=nums[left];
}
return;
}
mid=left+((right-left)>>1);
max_min(nums,left,mid,max_left,min_left);
max_min(nums,mid+1,right,max_right,min_right);
if (max_left>=max_right) fmax=max_left;
else fmax=max_right;
if (min_left>=min_right) fmin=min_right;
else fmin=min_left;
}
int main()
{
vector<int>nums={11,9,20,56,42,3,7,15,16};
int fmax=INT_MAX;
int fmin=INT_MIN;
max_min(nums,0,6,fmax,fmin);
cout<<fmin<<" "<<fmax<<endl;
return 0;
}