아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

레일

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

요약
서로 다른 2n개의 직선이 주어질 때, 각 쌍이 평행하고 거리가 같은 d가 되도록 짝지을 수 있는 최소 d를 구한다.
난이도

어려움10점 중 8점

유형
기하, 해시맵, 정렬, 수학
정답자
아직 제출이 없습니다

문제

철도의 중요한 파라미터는 궤간, 즉 열차가 달리는 두 레일 사이의 거리다. 이 파라미터가 철도를 달릴 수 있는 열차와 다른 기계의 종류를 결정한다.

최근 행성 RCC-0805로 향한 우주 탐사대는 이 행성에도 철도가 있다는 사실을 밝혀냈다. 철도 차량기지까지 발견했지만, 궤간은 아직 측정하지 못했다. 이 행성의 철도는 침목 없이 부설되었기 때문에 어떤 레일이 서로 짝을 이루는지 항상 쉽게 알 수 있는 것이 아니다.

철도 차량기지 영역에 놓인 레일의 배치도가 주어진다. 단순화를 위해 영역은 무한한 평면이고, 각 레일은 직선으로 표현된다고 하자. 레일을 짝으로 나누어 각 짝의 두 레일이 평행하고 그 사이 거리가 dd가 되도록 할 수 있는 최소 궤간 dd를 구해야 한다.

입력

첫째 줄에는 정수 nn (1≤n≤20001 \le n \le 2000)이 주어진다. 다음 2n2n개 줄에는 각각 네 개의 정수 xi,1x_{i,1}, yi,1y_{i,1}, xi,2x_{i,2}, yi,2y_{i,2}가 주어지며, 이는 레일이 지나는 서로 다른 두 점의 좌표다. 모든 좌표의 절댓값은 1000을 넘지 않는다. 서로 다른 레일에 대응하는 직선은 일치하지 않는다.

출력

가능한 최소 궤간을 실수로 출력한다. 오차는 10−610^{-6} 이하여야 한다.

어떤 궤간에서도 문제의 조건을 만족하도록 레일을 짝으로 나눌 수 없다면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    3
    0 0 0 1
    1 0 1 1
    2 0 2 1
    3 0 3 1
    0 0 1 0
    0 1 1 1
    
    예상 출력
    1