만드는 중입니다

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

구간 덮기

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

요약
직선 위의 구간 N개 중 최대 3개를 골라 S에서 E까지 덮을 때, 고른 구간끼리 겹치는 길이의 합이 가장 작은 값을 구합니다.
난이도

보통10점 중 6점

유형
구간, 정렬, 동적 계획법
정답자
아직 제출이 없습니다

문제

1차원 평면에 NN개의 선분이 있다. 주어진 선분을 최대 3개 사용하여 x=Sx = S부터 x=Ex = E까지의 구간을 모두 덮으려 한다.

시작점이 x=lx=l이고 끝점이 x=rx=r인 선분은 l≤x≤rl \leq x \leq r을 만족하는 점 xx를 덮는다. 선분 집합 LL이 구간을 덮는다는 것은 S≤x≤ES \leq x \leq E인 모든 실수 xx에 대해, LL에 xx를 덮는 선분이 적어도 하나 있다는 뜻이다.

구간을 덮는 방법의 '오차'는 사용한 선분 중 서로 다른 2개를 골랐을 때 겹치는 구간의 길이를 모든 쌍에 대해 더한 값이다. 선분 하나로 x=Sx = S부터 x=Ex = E까지 덮을 수 있다면 이 방법의 오차는 0이다.

최대 3개의 선분으로 구간을 덮되, '오차'가 가장 작은 값을 구한다.

입력

첫 번째 줄에 선분의 개수 NN, 시작점 SS, 끝점 EE가 공백으로 구분되어 주어진다.

이후 NN개의 줄에 걸쳐 ii번째 줄에 ii번째 선분의 시작점 sis_i와 끝점 eie_i가 공백으로 구분되어 주어진다.

출력

첫째 줄에 가능한 오차의 최솟값을 출력한다.

어떤 방법으로도 x=Sx=S부터 x=Ex=E까지 덮을 수 없다면 −1-1을 출력한다.

제한

  • 1≤N≤1,000,0001 \leq N \leq 1,000,000
  • 1≤si<ei≤1091 \leq s_i < e_i \leq 10^9
  • 1≤S<E≤1091 \leq S < E \leq 10^9
  • 입력되는 모든 수는 정수이다.

예제2

  1. 예제 1

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

    입력
    5 14 46
    1 16
    32 45
    39 48
    42 47
    36 46
    
    예상 출력
    -1