우체국 3
시간 제한1초메모리 제한1024 MB
원형 도로 위의 마을 V개 중 P개를 우체국 위치로 골라, 각 마을에서 가장 가까운 우체국까지의 거리 합을 최소로 하는 문제입니다.
문제
원형으로 된 큰 길(순환로)이 있고, 길 옆에 V개의 마을이 있다. 큰 길의 둘레 길이는 정수 L이다. 이 문제에서 큰 길은 0 이상 L-1 이하의 정수 좌표가 원을 이루는 것으로 본다. 각 마을의 위치는 길 위의 정수 좌표로 나타낸다. 같은 위치에 마을이 여러 개 있을 수 있다. 좌표가 x, y인 두 마을 사이의 거리는 이다.
마을이 있는 곳에 우체국을 P개 지으려고 한다. 모든 마을에 우체국을 짓지는 않는다. 전체 마을 중 P곳을 골라 그 위치에 우체국을 짓는다. 각 마을과 그 마을에서 가장 가까운 우체국 사이 거리의 합이 최소가 되도록 하려고 한다.
입력
첫 줄에 세 정수 V, P, L이 주어진다. (, )
다음 줄에는 각 마을의 위치를 나타내는 V개의 정수 좌표가 주어진다. 좌표는 비내림차순으로 정렬되어 있다. 각 좌표의 범위는 0 이상 L-1 이하이다.
출력
첫째 줄에 각 마을과 가장 가까운 우체국 사이 거리의 합의 최소값 S를 출력한다.
둘째 줄에는 우체국을 지을 마을의 위치 P개를 비내림차순으로 출력한다.