program main
   implicit none
integer(8):: n, i, ans, k
integer(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
    integer(8), 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