철로 놓기
시간 제한5초메모리 제한512 MB
x좌표 순으로 정렬된 n개 도시를 수직이 아닌 직선들로 덮으면서, 각 도시에서 직선까지의 수직거리 제곱합과 직선 개수 곱하기 C의 합을 최소로 만든다.
문제
영구국은 여러 도시를 잇는 철로를 놓으려고 한다. 노선은 각 도시와 철로 사이의 거리가 가장 작아지도록 정하기로 했다. 자재를 알아보던 기술진은 이웃 나라 포에버국에서 만든 기성품 선로를 사 오는 편이 가장 낫다는 것을 알아냈다. 그런데 포에버국이 파는 기성품 선로는 직선뿐이다. 노선이 하나의 직선이 아니면 (아래 그림처럼) 기성품 선로를 여러 개 사야 한다. 길이가 서로 다른 선로를 사도 된다.

포에버국에서 선로를 하나 들여올 때마다 간접비 가 붙는다. 그래서 가 최소가 되도록 노선을 설계해야 한다.
- 는 각 도시에서 철로로 내린 수직 선분의 길이를 제곱해서 모두 더한 값이다.
- 는 기성품 선로의 개수이다.
다음 조건도 함께 지켜야 한다.
- 선로가 서로 이어져 있지 않아도 된다.
- 어떤 선로도 수직으로 놓을 수 없다.
- 어떤 수직선도 두 선로의 내부를 서로 다른 두 점에서 만나지 않는다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫째 줄에는 정수 과 실수 가 공백 하나로 구분되어 주어진다. 이어지는 개 줄에 도시의 좌표가 주어지며, 번째 줄에는 번째 도시의 좌표 와 가 정수로 주어진다.
제한
- 는 소수점 아래 셋째 자리까지 주어진다.
출력
각 테스트 케이스마다 의 최솟값을 한 줄에 하나씩 출력한다. 소수점 아래 다섯째 자리에서 반올림해서 넷째 자리까지 출력하고, 뒤에 오는 0도 생략하지 않는다. 값이 이면 1.0000으로 출력한다.