직각시의 불꽃놀이
시간 제한1초메모리 제한128 MB
안전거리 S를 지키면서 수직 발사 도로 V를 골라 모든 시민이 두 교차 도로 위 허용된 지점까지 걷는 총 거리를 최소화하는 문제입니다.
문제
직각시(RightAngleles)의 도로는 무한한 정사각 격자를 이룬다. 임의의 두 도로는 서로 평행하거나 수직이며, 이웃한 평행 도로 사이의 거리는 항상 단위이다. 동서 방향으로 뻗은 도로를 가로 도로라 하고 남쪽에서 북쪽으로 가면서 연속한 정수로 번호를 매기며, 남북 방향으로 뻗은 도로를 세로 도로라 하고 서쪽에서 동쪽으로 가면서 연속한 정수로 번호를 매긴다. 각 교차점은 그 지점에서 만나는 가로 도로 번호와 세로 도로 번호로 나타낸다.
모든 시민은 자기 집 입구가 있는 교차점에 살며, 한 교차점에 여러 시민이 살 수도 있다.
시장은 중앙 가로 도로(번호 )와 어떤 세로 도로 가 만나는 교차점에서 불꽃놀이를 열려고 한다. 불꽃은 그 교차점에서 만나는 두 도로, 즉 중앙 가로 도로와 세로 도로 를 따라서만 보인다. 안전을 위해 모든 관람객은 발사 지점에서 적어도 단위 이상 떨어져 있어야 한다. 구체적으로 시민은 다음 두 종류의 지점에서만 불꽃놀이를 볼 수 있다.
- 중앙 가로 도로 위의 교차점 중 세로 도로 번호가 와 이상 차이 나는 지점, 또는
- 세로 도로 위의 교차점 중 가로 도로 번호가 에서 이상 떨어진 지점.
예를 들어 이면, 중앙 가로 도로에서는 세로 도로 , , 위의 교차점을 제외한 모든 교차점에서, 그리고 세로 도로 에서는 가로 도로 , , 위의 교차점을 제외한 모든 교차점에서 불꽃놀이를 볼 수 있다.
시민은 도로를 따라서만 이동하므로, 어떤 관람 지점까지 이동하는 거리는 지나는 단위 구간의 개수와 같다. 관심 있는 각 시민은 허용된 관람 지점 중 가장 가까운 곳으로 이동하며, 시장은 모든 시민이 이동하는 거리의 합이 최소가 되도록 세로 도로 를 고른다.
이 최소 이동 거리 합을 구하는 프로그램을 작성하라.
입력
첫째 줄에 두 양의 정수 과 가 공백으로 구분되어 주어진다. 은 시민의 수(), 는 안전 거리()이다.
다음 개의 줄에는 각각 두 정수 와 가 공백으로 구분되어 주어진다(). 이는 번째 시민이 사는 교차점의 가로 도로 번호 와 세로 도로 번호 이다.
출력
시민들이 불꽃놀이를 보기 위해 이동해야 하는 최소 총 거리(단위)를 정수 하나로 출력한다.