투어
시간 제한1초메모리 제한128 MB
x좌표 순으로 정렬된 점들에 대해 왼쪽에서 오른쪽, 다시 오른쪽에서 왼쪽으로 가는 최단 이분 순회(bitonic tour)의 길이를 O(n^2) DP로 계산합니다.
문제
숙련된 조종사 John Doe는 여행을 즐긴다. 휴가 때 그는 작은 비행기를 빌려 아름다운 장소들을 방문한다. 비용을 아끼기 위해, 그는 모든 목적지를 연결하는 가장 짧은 닫힌 투어를 원한다. 각 목적지는 평면 위의 한 점이며, 모든 점의 좌표는 서로 다르다.
John은 항상 같은 방식으로 비행한다. 가장 왼쪽 점에서 출발하여, 오른쪽 방향으로만 이동해 가장 오른쪽 점에 도달한 뒤, 다시 왼쪽 방향으로만 이동해 출발점으로 돌아온다.
평면 위의 개의 점이 주어질 때, John의 방식을 따르는 가장 짧은 닫힌 투어의 길이를 구하여라.
입력
프로그램의 입력은 여러 개의 데이터 집합이 담긴 텍스트 파일에서 주어진다. 각 데이터 집합은 하나의 점 집합을 나타낸다. 먼저 점의 개수 이 주어지고, 이어서 개의 점 좌표가 좌표의 오름차순으로 주어진다(각 점은 값과 값으로 주어진다). 입력에는 공백이 자유롭게 나타날 수 있다. 한 데이터 집합 안의 모든 좌표는 서로 다르며, 입력 데이터는 올바르다. 입력의 끝까지 데이터 집합을 읽어 처리한다.
출력
각 데이터 집합에 대해, 결과를 줄의 맨 앞부터 표준 출력에 출력한다. 결과는 투어의 길이이며, 소수점 아래 두 자리의 부동소수점 수로 나타낸다.