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: Time Limit Exceeded)

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main(){

int A[200000],N,i=0,i2=0,t;
char st[200000][10],s;

/*数を入力*/
scanf("%d", &N);
if(N<2 || N>200000)return 0;//error
/*文字列入力*/
s=getchar();
while(1){
	if(i2>9 || i>N-1)break;//入力超過
   	st[i][i2]=getchar();
	if(st[i][i2]==' '){st[i][i2]='\n';i++;i2=0;}//次の行に入力
		else if(st[i][i2]=='\n'){break;}//入力終了
		else if(isdigit(st[i][i2])==0)break;//数字以外
		else
		i2++;//入力継続
}
/*文字列を数字に変換*/
for(i=0;i<N;i++){
A[i]=atoi(st[i]);
//printf("%d %s\n",A[i],st[i]);
}
/**バブルソートで昇順にし、同数があればNO表示で終了*/
for(i=0;i<N-1;i++){
	for(i2=N-1;i2>i;i2--){
		if(A[i2]<A[i2-1]){
			t=A[i2]; A[i2]=A[i2-1]; A[i2-1]=t;
		}else if(A[i2]==A[i2-1]){
			printf("NO\n"); return 0;
		}
	}
}

/*配列数を比較し、同じならYes 違うならNo*/
	printf("YES\n");
	return 0;
}