#include<iostream>
using namespace std;
template<class Type>
void BinaryIsertSort(Type *array,Type n)
{ Type temprecord;
int left,right,middle;
for(int i=1;i<n;i++)
{temprecord=array[i];
left=0;
right=i-1;
while(left<=right)
{middle=(left+right)/2;
if(temprecord<array[middle])
right=middle-1;
else left=middle+1;
}
for(int j=i-1;j>=left;j--)
array[j+1]=array[j];
array[left]=temprecord;
}
}
int main()
{ int n,*a,i;
cin>>n;
a=new int [n];
for( i=0;i<n;i++)
cin>>a[i];
BinaryIsertSort(a,n);
for(i=0;i<n;i++)
{ if(i==(n+0-1)/2)
cout<<a[i]<<endl;
}
return 0;
}
//写了了一个用的是二分排序,是数据结构的,难得看的话就用冒泡或者选择排序也行,排序方法太多了。排好序输出中间的那个元素,楼主看看满足题意不。