균형 잡힌 등급

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

요약
점들을 지배 관계로 정렬해 세 개의 비어 있지 않은 등급으로 나누고, 등급 인원의 최댓값과 최솟값 차이를 최소화한다.
난이도

보통10점 중 7점

유형
정렬, 투 포인터, 그리디
정답자
아직 제출이 없습니다

문제

서울과학고의 자료구조 수업은 NN명의 학생이 수강한다. 자료구조 수업은 중간고사와 기말고사가 존재하며, 각 시험의 점수는 00 이상 10610^6 이하의 정수이다.

선생님은 학생들의 시험 점수를 바탕으로 학생들에게 '상', '중', '하' 중 하나의 등급을 부여하려고 한다. 이때 부여하는 등급은 다음 두 조건에 맞아야 한다.

  • 각 등급은 적어도 한 명의 학생이 받아야 한다.
  • 더 높은 등급을 받은 학생은 더 낮은 등급을 받은 학생보다 중간고사, 기말고사 점수가 모두 더 높아야 한다.

선생님은 불균형도를 최소화하도록 등급을 매기고자 한다. '상', '중', '하' 등급을 받은 사람의 수를 각각 aa, bb, cc라고 하자. 이때 불균형도는 max⁡(a,b,c)−min⁡(a,b,c)\max(a,b,c) -\min(a,b,c)로 정의된다.

가능한 불균형도의 최솟값을 구하여라.

입력

첫 줄에 학생의 수 NN이 주어진다.

그 뒤 NN개의 줄이 주어진다. 이들 중 ii번째 줄에는 ii번 학생의 중간고사와 기말고사 점수 A_iA\_i와 B_iB\_i가 띄어쓰기를 사이에 두고 주어진다.

출력

가능한 불균형도의 최솟값을 출력한다.

만약 선생님이 조건에 맞게 등급을 부여하는 것이 불가능하다면, -1을 출력한다.

제한

  • 3≤N≤2×1053\le N\le 2\times 10^5
  • 0≤A_i,B_i≤1060\le A\_i,B\_i\le 10^6 (1≤i≤N)(1\le i\le N)
  • 입력에 주어지는 모든 수는 정수이다.

힌트

max⁡(a,b,c)\max(a,b,c)와 min⁡(a,b,c)\min(a,b,c)는 각각 aa, bb, cc 중 최댓값과 최솟값을 의미한다.

예제3

  1. 예제 1

    입력
    3
    1 10
    2 20
    3 30
    
    예상 출력
    0
    
  2. 예제 2

    입력
    8
    1 2
    2 1
    3 4
    4 3
    5 6
    6 5
    7 8
    8 7
    
    예상 출력
    2
    
  3. 예제 3

    입력
    5
    2 4
    3 1
    5 6
    8 2
    7 3
    
    예상 출력
    -1