밀도 지도

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

요약
n x n 이진 격자의 각 칸에 대해 체비쇼프 거리 r 이내에 있는 값들의 합을 2차원 누적 합 또는 슬라이딩 윈도우로 구한다.
난이도

보통10점 중 4점

유형
누적 합, 행렬, 슬라이딩 윈도우
정답자
아직 제출이 없습니다

문제

정수 n>r≥0n > r \ge 0 과, 원소가 {0,1}\{0, 1\} 인 n×nn \times n 표 FF 가 주어진다. 표의 열과 행은 각각 11 부터 nn 까지 번호를 매기며, ii 번째 열과 jj 번째 행에 있는 값을 F[i,j]F[i, j] 로 나타낸다.

두 위치 [i,j][i, j] 와 [i′,j′][i', j'] 사이의 거리는 max⁡(∣i−i′∣, ∣j−j′∣)\max(|i - i'|,\ |j - j'|) 로 정의한다.

n×nn \times n 표 WW 를 계산하라. 여기서 W[i,j]W[i, j] 는, [x,y][x, y] 와 [i,j][i, j] 사이의 거리가 rr 이하인 모든 F[x,y]F[x, y] 의 합이다.

표준 입력에서 정수 nn, rr 과 표 FF 를 읽어 표 WW 를 계산한 뒤, 표 WW 를 표준 출력에 출력하는 프로그램을 작성하라.

입력

첫째 줄에 공백 하나로 구분된 두 정수 nn 과 rr 이 주어진다 (0≤r<n≤2500 \le r < n \le 250). 이어지는 nn 개의 줄에 표 FF 가 주어진다. 각 줄에는 {0,1}\{0, 1\} 에 속하는 정수 nn 개가 공백 하나로 구분되어 있다. (j+1)(j+1) 번째 줄에 쓰인 ii 번째 수가 F[i,j]F[i, j] 와 같다.

출력

정확히 nn 개의 줄을 출력한다. jj 번째 줄에는 W[1,j],W[2,j],…,W[n,j]W[1, j], W[2, j], \dots, W[n, j] 의 값을 순서대로 공백 하나로 구분하여 출력한다.

예제3

  1. 예제 1

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

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

    입력
    3 2
    1 0 1
    1 1 0
    0 0 1
    
    예상 출력
    5 5 5
    5 5 5
    5 5 5