#include
#include
int b[11111];
int num[11111];
//归并排序
void mergeSort(int *a, int l, int r){
if(r-l<= 1)
return;
int mid= (l+ r)/2;
mergeSort(a, l, mid);
mergeSort(a, mid, r);
int p= l, q= mid;
int i= l;
while (p< mid || q< r){
if(q>= r)
b[i++]= a[p++];
else if(p>= mid || a[p]> a[q])
b[i++]= a[q++];
else
b[i++]= a[p++];
}
for (int j= l; j< r; j++) {
a[j]= b[j];
}
}
//插入排序
void insertSort(int *a, int l, int r){
for(int i= l+1; i< r; i++){
int temp= a[i];
for(int j= i-1; j>= l; j--)
if(a[j]> temp){
a[j+1]= a[j];
a[j]= temp;
}
}
}
//选择排序
void selectSort(int *a, int l, int r){
for (int i= l; i< r; i++)
for (int j= i+1; j< r; j++)
if(a[i]> a[j]){
a[i]= a[i]^a[j];
a[j]= a[i]^a[j];
a[i]= a[i]^a[j];
}
}
//希尔排序
void shellSort(int *a, int l, int r){
int gap= 0;
while (gap <= r-l)
gap= gap*3+ 1;
//这里用直接插入排序
while (gap) {
for(int i= l; i< l+gap ; i++){
int j= i+ gap;
while(j< r){
int temp= a[j];
for(int k= j- gap; k>= l; k-= gap)
if(a[k]> temp){
a[k+ gap]= a[k];
a[k]= temp;
}
j+= gap;
}
}
gap= (gap- 1)/3;
}
}
//冒泡排序
void buddleSort(int *a, int l, int r){
for (int i= l; i< r- 1; i++)
for(int j= l; j< r- 1; j++)
if (a[j]> a[j+1]) {
int temp= a[j];
a[j]= a[j+1];
a[j+1]= temp;
}
}
//快速排序
void quickSort(int *a, int l, int r){
if(r- l<= 1)
return;
int key= a[l], i= l, j= r- 1;
while(i< j){
while (i< j && a[j]>= key)
--j;
int temp= a[i];
a[i]= a[j];
a[j]= temp;
while (i< j && a[i]<= key)
++i;
temp= a[i];
a[i]= a[j];
a[j]= temp;
}
quickSort(a, l, i);
quickSort(a, i+1, r);
}
//堆排序
void mySwap(int *a, int *b){
int temp= *a;
*a= *b;
*b= temp;
}
void heapChang(int *a, int i, int len){
int child= 2* i+ 1;
while (child < len) {
if(child+ 1< len)
if(a[child]< a[child+ 1])
++child;
if(a[i]>= a[child])
break;
mySwap(a+i, a+child);
i= child;
child= 2* i+ 1;
}
}
void heapSort(int *a, int *b){
int len= (b- a);
for(int i= (len-1)/2; i>= 0; i--)
heapChang(a, i, len);
mySwap(a, b-1);
//进行n-1次堆调整
for(int i= 1; i< len; i++){
heapChang(a, 0, len-i);
mySwap(a, b-i-1);
}
}
int main(int argc, const char * argv[]) {
int n;
while (scanf("%d",&n)!=EOF) {
for(int i= 1; i<= n; i++)
scanf("%d",&num[i]);
//mergeSort(num, 1, n+1);
//insertSort(num, 1, n+1);
//selectSort(num, 1, n+1);
//shellSort(num, 1, n+1);
//buddleSort(num, 1, n+1);
//quickSort(num, 1, n+1);
heapSort(num+1, num+n+1);
printf("%d\n",num[1+n/2]);
}
return 0;
}