직각시의 불꽃놀이

시간 제한1초메모리 제한128 MB

요약
안전거리 S를 지키면서 수직 발사 도로 V를 골라 모든 시민이 두 교차 도로 위 허용된 지점까지 걷는 총 거리를 최소화하는 문제입니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 그리디, 수학
정답자
아직 제출이 없습니다

문제

직각시(RightAngleles)의 도로는 무한한 정사각 격자를 이룬다. 임의의 두 도로는 서로 평행하거나 수직이며, 이웃한 평행 도로 사이의 거리는 항상 11 단위이다. 동서 방향으로 뻗은 도로를 가로 도로라 하고 남쪽에서 북쪽으로 가면서 연속한 정수로 번호를 매기며, 남북 방향으로 뻗은 도로를 세로 도로라 하고 서쪽에서 동쪽으로 가면서 연속한 정수로 번호를 매긴다. 각 교차점은 그 지점에서 만나는 가로 도로 번호와 세로 도로 번호로 나타낸다.

모든 시민은 자기 집 입구가 있는 교차점에 살며, 한 교차점에 여러 시민이 살 수도 있다.

시장은 중앙 가로 도로(번호 00)와 어떤 세로 도로 VV가 만나는 교차점에서 불꽃놀이를 열려고 한다. 불꽃은 그 교차점에서 만나는 두 도로, 즉 중앙 가로 도로와 세로 도로 VV를 따라서만 보인다. 안전을 위해 모든 관람객은 발사 지점에서 적어도 SS 단위 이상 떨어져 있어야 한다. 구체적으로 시민은 다음 두 종류의 지점에서만 불꽃놀이를 볼 수 있다.

  • 중앙 가로 도로 위의 교차점 중 세로 도로 번호가 VV와 SS 이상 차이 나는 지점, 또는
  • 세로 도로 VV 위의 교차점 중 가로 도로 번호가 00에서 SS 이상 떨어진 지점.

예를 들어 S=2S = 2이면, 중앙 가로 도로에서는 세로 도로 V−1V-1, VV, V+1V+1 위의 교차점을 제외한 모든 교차점에서, 그리고 세로 도로 VV에서는 가로 도로 −1-1, 00, 11 위의 교차점을 제외한 모든 교차점에서 불꽃놀이를 볼 수 있다.

시민은 도로를 따라서만 이동하므로, 어떤 관람 지점까지 이동하는 거리는 지나는 단위 구간의 개수와 같다. 관심 있는 각 시민은 허용된 관람 지점 중 가장 가까운 곳으로 이동하며, 시장은 모든 시민이 이동하는 거리의 합이 최소가 되도록 세로 도로 VV를 고른다.

이 최소 이동 거리 합을 구하는 프로그램을 작성하라.

입력

첫째 줄에 두 양의 정수 NN과 SS가 공백으로 구분되어 주어진다. NN은 시민의 수(N≤105N \le 10^5), SS는 안전 거리(S≤106S \le 10^6)이다.

다음 NN개의 줄에는 각각 두 정수 HiH_i와 ViV_i가 공백으로 구분되어 주어진다(−109≤Hi,Vi≤109-10^9 \le H_i, V_i \le 10^9). 이는 ii번째 시민이 사는 교차점의 가로 도로 번호 HiH_i와 세로 도로 번호 ViV_i이다.

출력

시민들이 불꽃놀이를 보기 위해 이동해야 하는 최소 총 거리(단위)를 정수 하나로 출력한다.

예제5

  1. 예제 1

    입력
    7 2
    3 -2
    0 8
    -4 8
    -1 4
    -2 13
    -4 8
    1 5
    
    예상 출력
    9
    
  2. 예제 2

    입력
    1 1
    0 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 3
    1 4
    
    예상 출력
    1
    
  4. 예제 4

    입력
    3 2
    0 0
    0 10
    0 20
    
    예상 출력
    0
    
  5. 예제 5

    입력
    3 5
    1 0
    1 10
    1 20
    
    예상 출력
    3