L∞ 점프
시간 제한3초메모리 제한256 MB
원점에서 L∞ 거리 d인 점프를 정확히 n번 하여 (s, t)에 도달하고 각 점프마다 기준 방향에서 반시계 순서로 정한 방향 비용의 합을 최소화합니다.
문제
XY 평면 위의 두 점 와 사이의 L∞ 거리는 로 정의한다.
네 정수 가 주어진다. 처음에 점 에 서 있고, 점 로 이동해야 한다. 이를 위해 점프를 정확히 번 한다. 점프 한 번에 L∞ 거리로 정확히 만큼 이동해야 하고, 점프로 도착하는 점은 격자점이어야 한다. 즉 점 에 서 있을 때 와 가 정수이고 이면 점프 한 번으로 점 에 갈 수 있다.
점프를 번 모두 하기 전에 목적지 에 도착하더라도 점프를 멈출 수 없다.
각 점프에는 비용이 든다. 정수 개 이 추가로 주어지며, 모든 에 대해 이다. 번째 점프(1부터 센다)의 비용은 다음과 같이 정한다. 번째 점프 직전에 서 있는 점을 라고 하자. 이 점프로 갈 수 있는 격자점의 집합은 어떤 정사각형의 둘레 위에 있는 격자점 전체이다. 점 에 정수 1을 배정하고, 집합의 나머지 점에는 반시계 방향 순서로 를 배정한다. 이때 x축은 오른쪽이 양의 방향이고 y축은 위쪽이 양의 방향이다. 배정된 정수가 그 점으로 점프할 때의 비용이다.
예를 들어 이고 현재 위치가 이며 , 이면, 갈 수 있는 점은 , 인 정사각형의 둘레 위에 있는 격자점 16개이다. 비용은 이 1이고, 반시계 방향으로 이 2, 이 3, 이 4, 이 5, 이 8, 이 12, 이 16이다.
목적지에 도착하는 데 드는 비용 합의 최솟값을 구하라.
입력
입력은 테스트 케이스 하나로 이루어진다.
n d s t
x1 y1
x2 y2
...
xn yn
첫째 줄에 정수 네 개가 주어진다. ()은 점프 횟수이다. ()는 점프 한 번에 이동해야 하는 L∞ 거리이다. 와 ()는 목적지의 좌표와 좌표이다. 점프 번으로 목적지에 도착하는 방법이 적어도 하나 있음이 보장된다.
다음 개의 줄 중 번째 줄에는 두 정수 와 가 주어지며, 이다.
출력
목적지에 도착하는 데 필요한 최소 비용을 출력한다.