익스트림 정렬

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

John은 정렬 알고리즘을 아주 좋아한다. 퀵 정렬, 병합 정렬, 기수 정렬을 비롯해 여러 알고리즘을 공부했다.

오래전에 John은 락프리 병렬 문자열 정렬 프로그램을 짰다. 버스트 정렬과 다중 키 퀵 정렬을 합친 물건이었다. 버스트 정렬을 구현하려면 버킷으로 이루어진 트리를 만들어야 한다. 입력 문자열마다 트리를 따라 내려가면서 문자열의 일부를 알맞은 버킷에 넣는다. 버킷이 가득 차면 그 버킷은 "터지면서" 새 버킷을 가진 부분 트리로 바뀐다.

그림 G.1: 버스트 정렬 자료구조

옛날 이야기는 여기까지다. 오늘 John은 다시 정렬 알고리즘을 만지고 있고, 이번 대상은 숫자다. 그는 "익스트림 정렬"이라는 새 알고리즘을 떠올렸다. 속도가 극도로 빨라서 성능 수치가 9000을 넘는다. 세부 내용을 남에게 말하기 전에 John은 알고리즘이 제대로 도는지 확인하고 싶다.

알고리즘의 첫 단계가 끝난 뒤 익스트림 성질이 성립하는지 검증하라. 익스트림 성질은 min(xi,j)0\min(x_{i,j}) \ge 0 으로 정의하며, xi,jx_{i,j} 는 다음과 같다.

xi,j={ajai(1i<jN)9001(그 외)x_{i,j} = \begin{cases} a_j - a_i & (1 \le i < j \le N) \\ 9001 & (\text{그 외}) \end{cases}

입력

첫째 줄에 정수 NN (1N10241 \le N \le 1024)이 주어진다.

둘째 줄에 정수 a1 a2  aNa_1\ a_2\ \dots\ a_N (1ai10241 \le a_i \le 1024)이 공백으로 구분되어 주어진다.

출력

주어진 입력에서 익스트림 성질이 성립하면 yes, 성립하지 않으면 no를 한 줄에 출력한다. 모두 소문자로 쓴다.