구간 덮기
시간 제한2초메모리 제한1024 MB
최대 100만 개의 선분 중 최대 3개로 [S, E]를 덮되 선택한 선분 쌍들의 겹치는 길이 합을 최소로 만들고, 불가능하면 -1을 출력한다.
문제
1차원 평면에 개의 선분이 존재한다. 1차원 평면상의 부터 까지의 구간을 주어진 선분을 최대 3개 사용하여 모두 덮으려 한다.
시작점이 이고 끝점이 인 선분이 점 를 덮는다는 것은 을 의미하고, 선분 집합 이 부터 까지를 덮을 수 있다는 것은 인 모든 실수 에 대해 를 덮는 선분이 에 적어도 하나 이상 존재함을 의미한다.
이때, 구간을 덮는 방법에 따라 '오차'라는 값을 정의하자.
'오차'는 사용한 선분 중 서로 다른 2개를 골랐을 때 겹치는 구간의 길이의 합이다. 만약 선분 하나로 부터 까지 모두 덮을 수 있다면 이 방법의 오차는 0이다.
'오차'를 최소화하면서 부터 까지 최대 3개의 선분을 사용하여 덮어보고, '오차'의 최솟값을 출력하자.
입력
첫 번째 줄에 선분의 개수 , 시작점 와 끝점 가 공백으로 구분되어 주어진다.
이후 줄에 걸쳐 그중 번째 줄에 번째 선분의 시작점 와 끝점 가 공백으로 구분되어 주어진다.
출력
첫째 줄에 가능한 오차의 최솟값을 출력한다.
만약 어떻게 하더라도 부터 까지 덮을 수 없다면 을 출력한다.
제한
- 문제에서 주어지는 모든 수는 정수이다.