program main
implicit none
character*16 :: a
integer :: n,i,j,x,y,z,m
integer,allocatable :: p(:)

read(*,*)n
allocate(p(n))
read(*, *)(p(i), i = 1,n)
call quicksort(p,1,n)

z=0

z = p(n/2+1) - p(n/2)

write(*,*) z

contains 

recursive subroutine quicksort(a, first, last)
  implicit none
  integer  a(*)
  integer first, last
  integer i, j
  real*8  x, t
  
  x = a( (first+last) / 2 )
  i = first
  j = last
  do
     do while (a(i) < x)
        i=i+1
     end do
     do while (x < a(j))
        j=j-1
     end do
     if (i >= j) exit
     t = a(i);  a(i) = a(j);  a(j) = t
     i=i+1
     j=j-1
  end do
  if (first < i - 1) call quicksort(a, first, i - 1)
  if (j + 1 < last)  call quicksort(a, j + 1, last)
end subroutine quicksort
end program main