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 C (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <stdio.h>

int main(){
  int i,n,m=0,a;
  unsigned long list[16000000];
  for(i=0;i<16000000;i++){
    list[i]=0;
  }
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%d",&a);
    if(((list[a>>6]>>(a&0x3F))&1)==1){
      m=1;
      break;
    }
    list[a>>6]|=1<<(a&0x3F);
  }
  if(m==0){
  	printf("YES");
  }else{
  	printf("NO");
  }
  return 0;
}