단순 다각형
시간 제한2초메모리 제한512 MB
x축에 한쪽 끝이 있는 n개의 선분이 모두 하나의 단순 다각형 경계에 놓일 수 있는지 판단하고, 가능하면 경계 길이의 최솟값을 구합니다.
문제
를 개의 선분으로 이루어진 집합이라고 하자. 각 선분의 한쪽 끝점은 x축 위에 있고, 다른 쪽 끝점은 x축 위쪽에 있다. 모든 끝점은 서로 다르지만, 선분끼리는 내부에서 교차할 수 있다.
의 모든 선분이 단순 다각형 의 경계에 포함되도록 를 그리려 한다. 즉, 각 선분은 의 변이거나 변의 일부여야 한다. 다각형 가 단순하다는 것은 각 꼭짓점의 내각이 가 아니고, 인접한 두 변이 꼭짓점에서 만나는 경우를 제외하고는 어떤 두 변도 만나지 않는다는 뜻이다.
그림 H.1은 단순 다각형을 그릴 수 있는 선분의 예이다. 검은색 실선이 의 선분이고, 빨간색 점선을 더하면 단순 다각형이 된다. 왼쪽 그림은 의 모든 끝점이 의 꼭짓점이다. 오른쪽 그림은 꼭짓점이 6개뿐인 단순 다각형으로, 두 끝점이 각각 의 변 내부에 놓인다. 의 끝점이 반드시 의 꼭짓점일 필요는 없다.
그림 H.1: 단순 다각형을 그릴 수 있는 선분의 예.
그림 H.2는 단순 다각형을 그릴 수 없는 선분의 예이다.
그림 H.2: 단순 다각형을 그릴 수 없는 선분의 예.
단순 다각형이 여러 개 있을 때는 경계의 길이가 가장 짧은 것을 구한다. 그림 H.3은 같은 선분 집합에 대해 다른 어떤 단순 다각형보다 경계가 짧은 다각형이다.
그림 H.3: 경계의 길이가 최소인 단순 다각형.
주어진 선분 집합에 대해 단순 다각형이 존재하는지 판별하라. 존재한다면 경계의 길이가 최소인 단순 다각형을 찾아라.
입력
첫 줄에 선분의 개수 이 주어진다 (). 이어서 개의 줄에 정수 , , 가 차례로 주어진다 (). 각 줄은 끝점이 과 인 선분을 나타낸다. 모든 끝점은 서로 다르므로, 같은 위치에 놓인 두 끝점은 없다.
출력
한 줄을 출력한다. 단순 다각형이 존재하면 경계 길이의 최솟값을 소수점 첫째 자리까지 반올림하여 출력한다. 존재하지 않으면 을 출력한다.