만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

균형 잡힌 등급

시간 제한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번 학생의 중간고사 점수 AiA_i와 기말고사 점수 BiB_i가 띄어쓰기를 사이에 두고 주어진다.

출력

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

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

제한

  • 3≤N≤2×1053\le N\le 2\times 10^5
  • 0≤Ai,Bi≤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