나무 옮기기
시간 제한1초메모리 제한128 MB
길이 L, 폭 W인 도로의 왼쪽 편에 N그루의 나무가 있을 때, 양쪽에 N/2그루씩 같은 등간격 위치에 오도록 옮기는 최소 총 유클리드 거리를 구한다.
문제
어느 대저택의 정원사가 입구에서 분수까지 이어지는 곧은 도로를 따라 나무를 심으려고 한다. 도로의 길이는 미터, 폭은 미터이다.
저택의 주인은 도로의 양쪽에 다음 규칙대로 나무를 심어 달라고 부탁했다.
- 가장 첫 번째 나무는 도로의 시작 지점(위치 )에, 마지막 나무는 끝 지점(위치 )에 있어야 한다.
- 도로 양쪽에 놓인 나무의 위치는 서로 완전히 일치해야 한다.
- 한쪽 면에서 이웃한 두 나무 사이의 간격은 모두 같아야 한다.
나무는 모두 그루이며, 따라서 양쪽에 각각 그루씩 놓이게 된다. 그런데 정원사는 실수로 모든 나무를 도로의 왼쪽 면에만 심어 버렸다. 이제 나무를 옮겨 위 규칙을 만족시키려고 한다. 각 나무는 도로 평면 위에서 직선으로 이동하며, 이동 거리는 유클리드 거리로 잰다. 규칙을 지키기 위해 옮겨야 하는 나무들의 이동 거리 합의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 심은 나무의 수 이 주어진다. 은 짝수이며 이다. 둘째 줄에는 두 정수 과 가 주어진다 (, ). 이어지는 개의 줄에는 각 나무의 위치를 나타내는 정수 가 한 줄에 하나씩 주어진다 ().
출력
규칙을 만족시키기 위해 옮겨야 하는 나무들의 이동 거리 합의 최솟값을 소수점 아래 여섯 자리까지 반올림하여 한 줄에 출력한다.