이동하며 풀 뜯기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

길게 뻗은 일직선 목초지를 수직선이라고 생각하자. 이 수직선 위의 서로 다른 정수 위치에 풀 더미가 $N$개 있다 ($1 \le N \le 1000$). 각 풀 더미는 수직선 위의 한 점으로 본다.

젖소 베시는 수직선 위의 정수 위치 $L$ ($1 \le L \le 1{,}000{,}000$)에서 출발하여, 왼쪽과 오른쪽 어느 방향으로든 자유롭게 (필요하면 방향을 바꿔 가며) 움직이면서 모든 풀 더미를 먹는다. 이동 속도는 일정하여 시간 한 단위 동안 거리 한 단위를 움직이며, 풀 더미가 있는 위치에 도달하는 즉시 그 풀 더미를 먹는다.

한동안 먹히지 않은 풀 더미는 시들어 간다. 어떤 풀 더미의 시듦(staleness) 은 베시가 움직이기 시작한 시각부터 그 풀 더미를 먹는 시각까지 흐른 시간으로 정의한다. 베시는 모든 풀 더미의 시듦의 총합을 최소로 만들고 싶다.

모든 풀 더미를 다 먹었을 때 얻을 수 있는 시듦 총합의 최솟값을 구하여라.

입력

첫째 줄에 두 정수 $N$과 $L$이 공백으로 구분되어 주어진다.

다음 $N$개의 줄에는 각 줄마다 풀 더미의 위치 $P$ ($1 \le P \le 1{,}000{,}000$)가 하나씩 주어진다. 모든 위치는 서로 다르다.

출력

모든 풀 더미를 먹었을 때 얻을 수 있는 시듦 총합의 최솟값을 한 줄에 출력한다.