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: Runtime Error)

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)

 do i=1,N-1
  if (A(i)==A(i+1)) kekka=1
 end do

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

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

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

 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 quicksort1(a, first, i-1)
 if (j+1 < last)  call quicksort1(a, j+1, last)
end subroutine quicksort1

endprogram test03_3