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 Ruby (2.3.3) (judge verdict: Accepted)

n = gets.to_i
ary =gets.chomp.split(' ').map(&:to_i)

def mergesort(a,b)
    i=0
    j=0
    new_ary = []
    flag = true
    while flag
        if(i<a.size)&&(j>=b.size||a[i]<=b[j])
            new_ary << a[i]
            i+=1
        elsif(j<b.size)&&(i>=a.size||b[j]<a[i])
            new_ary << b[j]
            j+=1
        else
            flag = false
        end
    end
    return new_ary
end
def merge(a)
    if a.size==1
        return a
    end
    ary1 = merge(a[0...(a.size/2)])
    ary2 = merge(a[(a.size/2)..-1])
    return mergesort(ary1,ary2)
end

ary = merge(ary)
ans = "YES"
(ary.size-1).times do |a|
    if ary[a]==ary[a+1]
        ans = "NO"
        break
    end
end

puts ans