만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

하늘에서 별똥별이 빗발친다

면접 대비

시간 제한2초메모리 제한256 MB

요약
한 변의 길이가 L인 축에 평행한 정사각형을 놓아 K개의 점 중 최대한 많이 덮을 때, 덮이지 않아 지면에 떨어지는 별의 개수를 구한다.
난이도

보통10점 중 6점

유형
배열, 정렬, 이분 탐색, 투 포인터
정답자
아직 제출이 없습니다

문제

"오빠, 나 얼마만큼 사랑해?"

"널 위해서라면 저 하늘의 별이라도 따다 줄 수 있어. 지금 따줄까?"

"에이, 거짓말!"

"정말이야. 한번 봐봐!"

욱제가 하늘을 발로 차자 정말로 별이 떨어졌다. 하나로 끝나지 않았다. 수많은 별똥별이 지구로 쏟아지기 시작했다. 욱제는 지구를 지키는 정의의 용사가 되기로 했다.

"자기야, 세계를 지키고 올게. 꼭 돌아올 테니 조금만 기다려줘."

지구가 부서지는 것을 막으려면 지표면에 떨어지는 별똥별의 수를 최소로 줄여야 한다. 욱제는 한 변의 길이가 LL인 정사각형 트램펄린을 하나 준비했다. 별똥별이 어디에 떨어질지 이미 알고 있으니, 트램펄린을 잘 놓아서 최대한 많은 별똥별을 우주로 튕겨낼 생각이다.

트램펄린은 두 변이 각각 xx축과 yy축에 평행하도록 놓아야 한다. 비스듬히 돌려서 놓을 수는 없다. 대신 평면 위 어디에나 놓을 수 있고, 놓는 위치가 정수일 필요는 없다. 별똥별이 트램펄린의 모서리에 정확히 떨어져도 튕겨 나간다. 두 별똥별이 같은 위치에 떨어지는 일은 없다.

트램펄린을 가장 좋은 자리에 놓았을 때 지표면에 부딪히는 별똥별이 몇 개인지 구하여라.

입력

첫째 줄에 네 정수 NN, MM, LL, KK가 공백으로 구분되어 주어진다. (1≤N,M≤5000001 \le N, M \le 500000, 1≤L≤1000001 \le L \le 100000, 1≤K≤1001 \le K \le 100) NN과 MM은 별똥별이 떨어지는 구역의 가로 길이와 세로 길이, LL은 트램펄린 한 변의 길이, KK는 별똥별의 개수다.

다음 KK개의 줄에 별똥별이 떨어지는 위치 xx와 yy가 공백으로 구분되어 한 줄에 하나씩 주어진다. (0≤x≤N0 \le x \le N, 0≤y≤M0 \le y \le M) 모든 좌표는 정수이고, 같은 위치가 두 번 주어지지는 않는다.

출력

트램펄린으로 최대한 많은 별똥별을 튕겨냈을 때 지표면에 부딪히는 별똥별의 개수를 첫째 줄에 출력한다.

예제4

  1. 예제 1

    입력
    12 10 4 7
    2 4
    7 3
    3 1
    5 6
    4 7
    12 10
    8 6
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    10 10 3 4
    0 0
    3 0
    0 3
    3 3
    
    예상 출력
    0
    
  4. 예제 4

    입력
    5 5 5 4
    0 0
    5 5
    0 5
    5 0
    
    예상 출력
    0