program main
integer :: n,i
real :: ans
real,allocatable :: a(:)
read *,n
allocate(a(n))
read *,a

call quicksort(a,1,n)

do i = 1,n-1
	a(i+1) = (a(i) + a(i+1))/2
end do

print *,a(n)
contains
recursive subroutine quicksort(a, first, last)
  implicit none
  real  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