끝점 위치가 각각 다른 n개의 구간이 주어질 때, 길이가 d인 어떤 선분에 온전히 포함되는 구간의 최대 개수를 구한다.
보통6정렬슬라이딩 윈도우투 포인터구간면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB집과 사무실을 오가며 통근하는 사람이 n명 있다. 각 사람의 집과 사무실은 수평선 위의 서로 다른 두 점에 있다. 두 사람 A와 B에 대해 A의 집이나 사무실 위치가 B의 집이나 사무실 위치와 같을 수 있다.
통근하는 사람들을 위해 수평선 위의 두 점을 잇는 철로를 놓고 기차를 운행하려고 한다. 예산이 한정되어 있어 철로의 길이는 d로 정해져 있다. 집과 사무실이 모두 철로 위에 놓이는 사람 수가 최대가 되도록 철로를 놓으려고 한다.
양의 정수 d와 정수쌍 (hi,oi)가 1≤i≤n에 대해 주어진다. hi는 사람 i의 집 위치, oi는 사무실 위치이다. 길이가 d인 모든 선분 L 가운데, 집과 사무실이 모두 L에 포함되는 사람 수의 최댓값을 구하는 프로그램을 작성하시오. 선분의 양 끝점도 선분에 포함된다.

그림 1. 여덟 사람의 집과 사무실 위치
그림 1은 여덟 사람의 집과 사무실 위치를 나타낸다. d=30일 때 위치 10과 40을 잇는 빨간 선분은 집과 사무실을 모두 담는 사람이 가장 많은 선분 가운데 하나이고, 그때 사람 수는 4이다.
입력은 표준 입력으로 받는다. 첫째 줄에 사람 수를 나타내는 양의 정수 n (1≤n≤100,000)이 주어진다. 이어지는 n개 줄에 정수쌍 hi와 oi가 공백을 사이에 두고 주어진다. hi와 oi는 −100,000,000 이상 100,000,000 이하이고 서로 다르다. 마지막 줄에 철로의 길이를 나타내는 정수 d (1≤d≤200,000,000)가 주어진다.
출력은 표준 출력으로 한다. 길이가 d인 선분 가운데 집과 사무실이 모두 그 선분에 포함되는 사람 수의 최댓값을 한 줄에 출력한다.