현상금 사냥꾼 정은
시간 제한1초메모리 제한256 MB
x좌표 순으로 정렬된 모든 행성을 가장 왼쪽에서 가장 오른쪽까지 두 개의 단조 경로로 나누어 전체 이동 거리를 최소화합니다.
문제
현상금 사냥꾼 정은이는 범죄자를 쫓고 있다. 정은이는 우주선 갈치 II호를 타고 2차원 평면에 흩어져 있는 행성 개를 모두 방문한 다음 출발한 행성으로 돌아와야 한다. 출발 행성은 좌표가 가장 작은 행성이다. 정은이는 가난하지만 사치스러워서 비싼 소고기를 사 먹을 돈을 남기고 싶으므로, 전체 이동 거리를 최소로 줄이려고 한다.
게다가 정은이는 범죄조직 CTP를 쫓는 중이라 그들에게 들키지 않으려고 항로를 다음과 같이 제한한다. 출발 행성에서 좌표가 가장 큰 행성까지는 좌표가 증가하는 순서로만 이동하고, 거기서 출발 행성으로 돌아올 때는 좌표가 감소하는 순서로만 이동한다. 두 구간을 합치면 모든 행성을 정확히 한 번씩 방문한다. 좌표가 가장 작은 행성과 가장 큰 행성은 두 구간이 함께 쓰는 반환점이고, 나머지 행성은 두 구간 중 정확히 한쪽에 속한다. 이면 항로는 왼쪽 행성에서 오른쪽 행성으로 갔다가 그대로 돌아오는 경로다.
두 행성 사이의 이동 거리는 유클리드 거리다. 조건을 만족하는 항로 중 전체 길이가 가장 짧은 값을 구하라.
입력
첫째 줄에 테스트 케이스의 수 ()가 주어진다.
각 테스트 케이스의 첫째 줄에 행성의 수 ()이 주어진다. 이어지는 개의 줄에 행성의 좌표 와 ()가 공백으로 구분되어 주어진다.
모든 좌표는 정수다. 한 테스트 케이스 안에서 좌표는 서로 다르고, 행성은 좌표가 증가하는 순서로 주어진다.
출력
각 테스트 케이스마다 최단 항로의 길이를 한 줄에 출력한다.
길이는 소수점 아래 넷째 자리에서 반올림해, 소수점 아래 자리를 정확히 4개 채워서 출력한다. 값이 정수여도 400.0000처럼 0을 채워야 한다. 출력은 문자열 그대로 비교한다.