차원 평면에 좌표가 서로 다른 개의 점이 주어진다. 이들을 좌표 오름차순으로 정렬한 것을 , , , 이라고 하자. 각각의 인접한 두 점 와 사이를 선분으로 연결하면 모든 점을 지나는 꺾은선(polygonal line) L을 얻을 수 있다. 하지만 꺾은선 은 개의 선분으로 이루어진다. 우리는 이 꺾은선 의 선분의 개수를 줄이는 대신에 이 지나지 않는 점들은 로부터 축 방향거리가 이내에 있도록 하고 싶다.
점들의 부분집합 , , , (, )를 생각하자. 이 점들에서 인접한 두 점 와 을 선분으로 연결해서 얻은 꺾은선을 이라고 하자. 여기서, , 이어야 한다. 다시 말해서, 꺾은선 은 첫째 점 과 마지막 점 은 지나야 한다. 위 부분집합에 속하지 않는 모든 점은 꺾은선 으로부터 축 방향거리가 이내(거리가 인 경우 포함)에 있어야 한다.
아래 그림은 두 점 와 사이의 모든 점이 와 을 연결하는 선분과 축 방향거리가 이내에 있음을 보여준다.
개 점의 좌표와 축 방향거리 제한 이 주어질 때, 위의 조건을 만족하는 꺾은선 을 구성하는 선분 개수 중 최소값을 계산하는 프로그램을 작성하라.
첫째 줄에 점들의 개수를 나타내는 정수 과 축 방향거리 제한을 나타내는 정수 이 주어진다. (, )
이어지는 개의 줄 각각에는 한 점의 좌표 를 나타내는 두 정수 와 가 좌표가 작은 것에서 큰 순서로 주어진다. () 모든 점의 좌표는 서로 다르다.
한 줄에 위의 조건을 만족하는 꺾은선 중에서 선분 개수의 최소값을 출력한다.
4 1 1 2 2 3 3 2 4 -1
2
, , 을 고르면 선분의 개수가 개로 최소가 된다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 37점
종류 2: 73점
문제의 원래 제한조건 이외의 추가된 제한이 없음.