#include
#include
#include
using namespace std;
double median(int *arr, int n)
{
if(n%2==0)
{
return(arr[n/2]+arr[n/2 - 1])/2;
}
else
{
return (arr[n/2]);
}
}
double findmedian(int *arr1 , int *arr2 ,int size)
{
//cout<<"arr1 elements are “<<endl;
for(int i= 0;i <size;i++)
{
cout<<arr1[i]<<” ";
}
//cout<<endl;
//cout<<"arr2 elements are “<<endl;
for(int i= 0;i <size;i++)
{
//cout<<arr2[i]<<” ";
}
//cout<<endl;
if(size == 1)
{
double result;
result = ((arr1[0])+(arr2[0]))/2;
return result;
}
if(size == 2)
{
double result;
int max1 = max(arr1[0],arr2[0]);
int min1 = min(arr1[1],arr2[1]);
result = (max1 + min1)/2;
return result;
}
double median1 = median(arr1 , size);
double median2 = median(arr2 , size);
if(median1 == median2)
{
return median1;
}
if(median1 < median2)
{
if(size%2==0)
{
return findmedian(arr1 + size/2 - 1,arr2,(size - size/2 + 1));
}
else
{
return findmedian(arr1 + size/2 ,arr2,(size - size/2));
}
}
else
{
if(size%2==0)
{
return findmedian(arr1,arr2 + size/2 - 1,(size - size/2 + 1));
}
else
{
return findmedian(arr1 ,arr2 + size/2,(size - size/2));
}
}
}
int main()
{
int n;
cin>>n;
int arr1[n];
int arr2[n];
for(int i = 0;i < n; i ++)
{
cin>>arr1[i];
}
for(int i = 0;i < n; i ++)
{
cin>>arr2[i];
}
double result = findmedian(arr1 , arr2 , n);
cout<<result<<endl;
return 0;
}