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

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

다이아몬드

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

요약
각 Pmin에 대해 어떤 중심에서도 최소 Pmin개 점을 덮는 최소 반지름과, 그 반지름에서의 최대 커버 점 수를 구한다.
난이도

보통10점 중 6점

유형
기하, 누적 합, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

MM개의 행과 NN개의 열로 이루어진 평면 격자를 생각하자. 이 격자에는 정확히 MNMN개의 교차점이 있으며, 각 교차점은 좌표쌍 (i,j)(i, j)로 나타낸다. 여기서 i=0,1,…,N−1i = 0, 1, \ldots, N-1은 열(즉 xx좌표), j=0,1,…,M−1j = 0, 1, \ldots, M-1은 행(즉 yy좌표)이다.

이제 서로 다른 K≤MNK \le MN개의 교차점에 점 KK개를 놓는다.

다이아몬드 D(i,j,r)D(i, j, r)는 교차점 (i,j)(i, j)를 중심으로 하며, 대각선 길이가 2r2r인 정사각형을 45∘45^\circ 회전시킨 마름모 모양이다. 반지름 rr는 r≥1r \ge 1인 임의의 정수이다. 이는 곧 중심으로부터 맨해튼 거리가 rr 이하인 모든 점, 즉 ∣x−i∣+∣y−j∣≤r|x - i| + |y - j| \le r를 만족하는 모든 점 (x,y)(x, y)를 덮는 것과 같다.

각 Pmin⁡=1,2,…,KP_{\min} = 1, 2, \ldots, K에 대하여, 중심을 어느 교차점에 놓더라도 항상 최소 Pmin⁡P_{\min}개의 점을 덮는 것이 보장되는 가장 작은 반지름 Rmin⁡(Pmin⁡)R_{\min}(P_{\min})을 구하라. 다시 말해 Rmin⁡(Pmin⁡)R_{\min}(P_{\min})은, 모든 중심 위치에 대한 최악의 경우(덮는 점 개수의 최솟값)가 Pmin⁡P_{\min} 이상이 되게 하는 가장 작은 rr이다.

Pmax⁡(Pmin⁡)P_{\max}(P_{\min})은 반지름이 Rmin⁡(Pmin⁡)R_{\min}(P_{\min})인 다이아몬드 하나가 덮을 수 있는 점의 최대 개수이다.

예를 들어 55행 77열 격자 위의 다섯 점 (0,0)(0,0), (4,0)(4,0), (2,2)(2,2), (0,4)(0,4), (4,4)(4,4)를 생각하자. 다이아몬드 D(2,4,1)D(2,4,1)은 어떤 점도 덮지 않고, D(2,1,2)D(2,1,2)는 한 점을 덮으며, D(3,3,4)D(3,3,4)는 네 점을 덮는다.

입력

첫째 줄에 행의 수 MM과 열의 수 NN이 주어진다.

이후 줄들에는 점 KK개가 주어진다(K≤MNK \le MN). 각 점은 xx좌표와 yy좌표를 이 순서로 나타내는 두 정수로 주어진다. 점들은 한 줄 또는 여러 줄에 걸쳐 나올 수 있으며, 한 줄 안의 모든 값은 하나 이상의 공백 문자(스페이스 또는 탭)로 구분된다.

1≤M≤1001 \le M \le 100, 1≤N≤1001 \le N \le 100임을 가정해도 된다. 격자 밖에 있는 점(즉 x<0x < 0, x>N−1x > N-1, y<0y < 0, 또는 y>M−1y > M-1)은 유효하지 않으므로 버린다.

출력

먼저 세 열의 제목 Pmin, Rmin(Pmin), Pmax(Pmin)을 담은 머리글 줄을 출력하고, 이어서 조건을 만족하는 각 Pmin⁡P_{\min} 값마다 한 줄씩 출력한다.

어떤 Pmin⁡P_{\min} 값에 대해서는, 반지름이 Rmin⁡(Pmin⁡)R_{\min}(P_{\min})인 다이아몬드가 정확히 Pmin⁡P_{\min}개의 점을 덮는 것이 보장될 때에만 Pmin⁡P_{\min}, Rmin⁡(Pmin⁡)R_{\min}(P_{\min}), Pmax⁡(Pmin⁡)P_{\max}(P_{\min})의 세 값을 출력한다. 연속한 두 값이 같은 반지름을 가지면(예: Rmin⁡(2)=Rmin⁡(3)R_{\min}(2) = R_{\min}(3)) 더 큰 값만 조건을 만족하므로, 더 작은 값에 대해서는 줄을 출력하지 않는다.

각 값은 해당 열 제목의 마지막 글자에 오른쪽 끝이 맞도록 오른쪽 정렬하며, 열과 열 사이는 두 칸의 공백으로 구분한다.

예제3

  1. 예제 1

    입력
    5 	7
    0 	0 0 	4
    4 0
    4 4	       2 2
    	0 5
    
    예상 출력
    Pmin  Rmin(Pmin)  Pmax(Pmin)
       1           4           5
       3           6           5
       4           8           5
       5          10           5
    
  2. 예제 2

    입력
    1 1
    0 0
    
    예상 출력
    Pmin  Rmin(Pmin)  Pmax(Pmin)
       1           1           1
    
  3. 예제 3

    입력
    3 3
    1 1
    
    예상 출력
    Pmin  Rmin(Pmin)  Pmax(Pmin)
       1           2           1