program prob6
    implicit none
    integer(16)::N,i,j,ans,tmp,k,ans2
    integer(16),allocatable::A(:),gg(:)
    read(*,*) N
    allocate(A(N),gg(N))
    do i = 1, N
        read(*,*) A(i)
    end do

    call heapsort(n,A)

    ans = 0
    ans2 = 0

    if(mod(n,2) == 1)then
        do i = n/2+2,n
            ans = ans + 2*A(i)
        end do
        do i = 1, n/2
            ans = ans - 2*A(i)
        end do

        ans = ans - min(A(n/2+1) - A(n/2),A(n/2+2) - A(n/2+1))
    else if(n == 2) then
        ans = A(2)-A(1)
    else
        do i = n/2+2, n
            ans = ans + 2*A(i)
        end do
        do i = 1, n/2-1
            ans = ans - 2*A(i)
        end do

        ans = ans + A(n/2+1) - A(n/2)
    end if

    write(*,*) ans

    stop
contains
    subroutine heapsort(n,array)
        implicit none
        integer(16),intent(in) :: n
        integer(16),intent(inout) :: array(1:n)
       
        integer ::i,k,j,l
        double precision :: t
       
        if(n.le.0)then
           write(6,*)"Error, at heapsort"; stop
        endif
        if(n.eq.1)return
      
        l=n/2+1
        k=n
        do while(k.ne.1)
           if(l.gt.1)then
              l=l-1
              t=array(L)
           else
              t=array(k)
              array(k)=array(1)
              k=k-1
              if(k.eq.1) then
                 array(1)=t
                 exit
              endif
           endif
           i=l
           j=l+l
           do while(j.le.k)
              if(j.lt.k)then
                 if(array(j).lt.array(j+1))j=j+1
              endif
              if (t.lt.array(j))then
                 array(i)=array(j)
                 i=j
                 j=j+j
              else
                 j=k+1
              endif
           enddo
           array(i)=t
        enddo
      
        return
    end subroutine heapsort
end program