implicit none
INTEGER(8) :: n,i,ans,k
REAL(8),ALLOCATABLE,DIMENSION(:) :: a

ans = 0
k = 0

READ(5,*) n
ALLOCATE(a(n))
READ(5,*) (a(i),i=1,n)

call heapsort(n,a)

do i=n,1,-1
    if(MOD(n-i,2)==0)then
        ans = ans+a(i)
    else
        ans = ans-a(i)
    endif
enddo

WRITE(6,"(i0)") ans

end

!---http://slpr.sakura.ne.jp/qp/sortf90/---
subroutine heapsort(n,array)
    implicit none
    INTEGER(8),INTENT(IN) :: n
    DOUBLE PRECISION,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(l)
                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
