//中位数排序 基于问题分解
#include<stdio.h>
#include<stdlib.h>
int na[505];
void jh(int a[],int l,int r)
{
int zj=a[l];
a[l]=a[r];
a[r]=zj;
}
int zws(int a[],int l,int r,int k)
{
//在a数列中找第k大的数
int bz=a[l];int i,js1=0,js2=0;int sum1[505],sum2[505];
for(i=2;i<=r;i++)
{
if(a[i]<=bz)
{
js1++;sum1[js1]=a[i];
}
else
{
js2++;sum2[js2]=a[i];
}
}
int ans;
if(js1<k-1)
{
//继续查找右区间
ans=zws(sum2,1,js2,k-js1-1);
}
if(js1>k-1)
{
//继续查找左区间
ans=zws(sum1,1,js1,k);
}
if(js1+1==k) return bz;//bz刚好是中位数
return ans;
}
int main()
{
int cd,i;double jg;
scanf("%d",&cd);
for(i=1;i<=cd;i++) scanf("%d",&na[i]);
if(cd%2==1) jg=zws(na,1,cd,(cd+1)/2);
else
{
jg=(zws(na,1,cd,cd/2)+zws(na,1,cd,cd/2+1))*1.0/2;
}
printf("%lf",jg);
return 0;
}