만드는 중입니다

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

선분 그리기

시간 제한5초메모리 제한2048 MB

요약
점마다 짝지어진 x축 위 선분까지 서로 엇갈리지 않게 선을 그을 때, 전체 길이의 최솟값을 구하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
기하, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

점 여러 개가 주어지고, 각 점에는 x축 위의 선분이 하나씩 짝지어 있다. 모든 점은 x축보다 엄격하게 위에 있고, 각 선분은 x축 위에 놓인다. 어떤 두 선분도 공통 점을 갖지 않는다.

각 점과 선분 쌍마다 그 점을 대응하는 선분에 잇는 새 선분을 하나씩 그린다. 짝짓기는 고정되어 있어서, 어떤 점이 어떤 선분에 이어질지는 바꿀 수 없다.

그린 선분 중 어떤 두 개도 엄격하게 교차해서는 안 된다. 두 선분이 한 끝점에서 만나는 것은 허용된다.

그린 모든 선분 길이의 합이 최소가 되는 값을 구하라. 유효하게 그릴 수 없다면 그럴 수 없다고 판단하라.

입력

첫 줄에 정수 nn (1≤n≤1051 \le n \le 10^5)이 주어진다. 이는 점과 선분 쌍의 개수다.

이어지는 nn개의 줄마다 정수 xx, yy, ll, rr (−106≤x≤106-10^6 \le x \le 10^6, 0<y≤1060 < y \le 10^6, −106≤l≤r≤106-10^6 \le l \le r \le 10^6)이 주어진다. 이 줄은 좌표 (x,y)(x, y)의 점과, 양 끝점이 (l,0)(l, 0), (r,0)(r, 0)인 선분을 나타낸다.

선분은 왼쪽에서 오른쪽 순서로 주어진다. 어떤 두 선분도 공통 점을 갖지 않는다. 두 점이 같은 위치에 있을 수 있다.

출력

그린 선분 길이의 총합의 최솟값을 실수 하나로 출력한다. 절대 오차 또는 상대 오차가 10−610^{-6} 이하이면 정답으로 인정한다. 엄격한 교차 없이 선분을 그릴 수 없으면 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    3
    0 6 -4 -2
    -2 1 -1 0
    0 4 1 4
    
    예상 출력
    11.9995169566
    
  2. 예제 2

    입력
    3
    0 6 -4 -2
    0 4 -1 0
    -2 1 1 4
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    2
    0 5 -1000000 -1
    0 5 1 1000000
    
    예상 출력
    10.1980390272