분수 계산

시간 제한1초메모리 제한512 MB

요약
0 이상 1 미만의 유리수 N개가 정렬된 채 주어질 때, 같은 길이의 다른 수열이 원형 거리의 합을 더 크게 만들 수 있는지 판별한다.
난이도

보통10점 중 7점

유형
수학, 그리디, 정렬, 구현
정답자
아직 제출이 없습니다

문제

0 이상 1 미만인 두 수 xx, yy에 대하여, 그 둘의 거리 d(x,y)d(x, y)를 다음과 같이 정의하자.

 \displaystyle d(x, y) = \min \left\\{ | x-y | , 1 - | x-y | \right\\} 

 0≤A_1≤A_2≤⋯≤A_N<10 \le A\_1 \le A\_2 \le \cdots \le A\_N < 1을 만족하는 길이 NN의 수열 AA에 대하여, 이의 분포 정도 f(A)f(A)를 다음과 같이 정의하자.

 f(A)=∑_1≤i<j≤Nd(A_i,A_j)\displaystyle f(A) = \sum\_{1 \le i < j \le N} d(A\_i, A\_j) 

길이 NN인 수열 AA가 주어질 때, 길이가 NN이면서 AA보다 분포 정도가 큰 수열이 존재하는지 판별하는 프로그램을 작성하시오.

즉, f(A)<f(B)f(A) < f(B)를 만족하는 길이 NN의 수열 BB가 존재하는지 여부를 판별하는 프로그램을 작성하시오.

입력

첫 번째 줄에 수열의 길이를 의미하는 자연수 NN이 주어진다.

두번째 줄에 NN개의 유리수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 사이에 공백을 두고 주어진다.

하나의 유리수는 "pp / qq" 형태로 주어지며, 이는 그 수가 pq\displaystyle \frac{p}{q}임을 의미한다. 여기서 pp와 qq는 정수며, 0≤p<q≤1090 \le p < q \le 10^9임이 보장된다.

출력

만약 길이가 NN이면서 AA보다 분포 정도가 큰 수열이 존재한다면, 첫 번째 줄에 "YES"를 출력한다.

만일 그렇지 않다면, 첫 번째 줄에 "NO"를 출력한다.

제한

모든 입력 데이터는 다음 조건을 만족한다.

  •  2≤N≤1062 \le N \le 10^6 
  •  0≤A_i<10 \le A\_i < 1 (1≤i≤N)(1 \le i \le N) 
  •  A_i≤A_i+1A\_i \le A\_{i+1} (1≤i<N)(1 \le i < N)

예제3

  1. 예제 1

    입력
    2
    0/1 1/2
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    2
    0/1 2/3
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    3
    0/1 1/6 1/3
    
    예상 출력
    YES