선분
시간 제한1.1초메모리 제한16 MB
정수 좌표의 점 N개가 주어질 때, 서로 다른 선분 K개의 길이 합을 최소로 만드는 선분을 고르고 모든 최적해에 반드시 포함되는 점을 구합니다.
문제
Vlad은 종이 위에 점을 찍는 것을 아주 좋아합니다. 하루 종일 점을 찍었지만, 이제는 그중 일부를 직선으로 잇고 싶어 합니다. 점은 개이며, 부터 까지 번호가 매겨져 있고, 모든 점의 좌표는 정수입니다. Vlad는 정확히 개의 서로 다른 선분을 그리려고 합니다. 각 선분의 양 끝점은 이미 그린 점들 가운데서 고릅니다. 또한 선분들의 길이 합, 즉 개 선분 길이의 총합을 최소로 만들고자 합니다.
최소 총 길이와 필수 점을 모두 구해 주세요. 점 가 필수 점이라는 것은, 총 길이가 최소가 되는 어떤 선택에서도 가 개 선분 중 적어도 하나의 끝점이 된다는 뜻입니다. 다시 말해 를 지우면 같은 최소 길이를 얻을 수 없습니다.
입력
첫 줄에 양의 정수 과 가 주어집니다. 이어지는 개의 줄에는 각 점의 좌표가 주어집니다. 좌표는 모두 정수입니다. 점은 부터 까지 번호가 매겨져 있습니다.
출력
첫 줄에 최소 총 길이를 이하의 오차로 출력하세요(소수점 넷째 자리까지 정확해야 합니다). 이어지는 줄에는 필수 점의 번호를 오름차순으로 출력하세요.
제한
- 모든 좌표는 범위의 정수입니다.
- 점의 좌표가 서로 다르다는 보장은 없습니다.
- 한 점은 몇 개의 선분에든 끝점으로 쓰일 수 있습니다.