Problem:
Score : 300 points

Problem Statement

Given is a sequence of integers A_1, A_2, ..., A_N.
If its elements are pairwise distinct, print YES; otherwise, print NO.

Constraints

2 ≤ N ≤ 200000

1 ≤ A_i ≤ 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 ... A_N

Output

If the elements of the sequence are pairwise distinct, print YES; otherwise, print NO.

Sample Input 1

5
2 6 1 4 5

Sample Output 1

YES

The elements are pairwise distinct.

Sample Input 2

6
4 1 3 1 6 2

Sample Output 2

NO

The second and fourth elements are identical.

Sample Input 3

2
10000000 10000000

Sample Output 3

NO

Solution in Fortran (gfortran v4.8.4) (judge verdict: Wrong Answer)

program test03_3
 implicit none
 integer first, last
 integer N
 integer,allocatable :: A(:)
 integer i,j
 integer :: kekka=0

 read *, N
 allocate(A(N))
 read *,A

 first=1
 last=N

 call quicksort1(A,first,last)

 if (kekka==0) print *, 'YES' 
 if (kekka==1) print *, 'NO' 

contains
recursive subroutine quicksort1(a, first, last)
implicit none
integer::a(N)
integer,intent(in)::first,last

 double precision::x,t
 integer::i,j

 x = a((first+last)/2)
 i = first
 j = last

do 
  do while (a(i) < x)
   i=i+1
  if ( a(i) == a(i+1) .and. i /= N ) then
! print '(i0,1x,i0)', a(i), a(i+1)
   kekka=1
   exit
  end if
  end do
  do while (x < a(j))
   j=j-1
  if ( a(j) == a(j-1) .and. j /= 1 ) then
! print '(i0,1x,i0)', a(j), a(j-1)
   kekka=1
   exit
  end if
  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 quicksort1(a, first, i-1)
 if (j+1 < last)  call quicksort1(a, j+1, last)
end subroutine quicksort1

endprogram test03_3