아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

정사각형 목초지 겹침

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

요약
크기가 같은 K×K 정사각형 N개의 중심이 주어질 때, 겹치는 쌍이 하나면 공유 넓이를, 없으면 0을, 둘 이상이면 -1을 출력한다.
난이도

보통10점 중 7점

유형
정렬, 슬라이딩 윈도우, 기하, 이분 탐색
정답자
아직 제출이 없습니다

문제

NN개의 정사각형 목초지를 세우려고 합니다. 각 목초지는 정확히 K×KK \times K 크기의 정사각형입니다. ii번째 목초지는 정수 좌표를 갖는 점 (xi,yi)(x_i, y_i)를 중심으로 하며, 축에 평행한 정사각형이므로 영역 [xi−K/2, xi+K/2]×[yi−K/2, yi+K/2][x_i - K/2,\ x_i + K/2] \times [y_i - K/2,\ y_i + K/2]를 덮습니다.

계획을 세우다 보니 두 목초지가 실수로 겹쳤을 수 있다는 것이 걱정됩니다. 여기서 겹친다는 것은 두 정사각형이 양의 넓이를 갖는 영역을 공유한다는 뜻입니다(변이나 꼭짓점만 맞닿는 경우는 겹치는 것으로 세지 않습니다). 어떤 두 목초지도 같은 중심점을 갖지 않습니다.

모든 목초지의 중심이 주어질 때, 겹치는 두 목초지가 공유하는 넓이를 구하세요. 겹치는 목초지가 하나도 없으면 00을, 겹치는 목초지 쌍이 둘 이상이면 −1-1을 출력합니다.

입력

  • 첫째 줄에 공백으로 구분된 두 정수 NN과 KK가 주어집니다 (2≤N≤50,0002 \le N \le 50{,}000, 1≤K≤1,000,0001 \le K \le 1{,}000{,}000). KK는 짝수임이 보장됩니다.
  • 다음 NN개의 줄 중 ii번째 줄에는 ii번째 목초지의 중심을 나타내는 두 정수 xix_i와 yiy_i가 주어집니다 (−1,000,000≤xi,yi≤1,000,000-1{,}000{,}000 \le x_i, y_i \le 1{,}000{,}000).

출력

  • 겹치는 두 목초지가 공유하는 넓이를 한 줄에 출력합니다. 겹치는 목초지가 하나도 없으면 00을, 겹치는 목초지 쌍이 둘 이상이면 −1-1을 출력합니다.

노트

두 목초지 ii와 jj는 ∣xi−xj∣<K|x_i - x_j| < K이고 ∣yi−yj∣<K|y_i - y_j| < K일 때, 그리고 오직 그때에만 양의 넓이로 겹칩니다. 이때 공유하는 넓이는 (K−∣xi−xj∣)×(K−∣yi−yj∣)(K - |x_i - x_j|) \times (K - |y_i - y_j|)와 같습니다.

예제3

  1. 예제 1

    입력
    4 6
    0 0
    8 4
    -2 1
    0 7
    
    예상 출력
    20
    
  2. 예제 2

    입력
    2 4
    0 0
    1 1
    
    예상 출력
    9
    
  3. 예제 3

    입력
    3 4
    0 0
    1 0
    2 0
    
    예상 출력
    -1