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

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

가장 가까운 수 - 2

면접 대비

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

요약
각 0을 맨해튼 거리 기준으로 가장 가까운 0이 아닌 값으로 바꾸되, 최근접 값이 둘 이상 동률이면 그대로 둔다.
난이도

보통10점 중 5점

유형
BFS, 그래프, 행렬, 구현
정답자
아직 제출이 없습니다

문제

N×NN \times N 크기의 음이 아닌 정수로 이루어진 행렬 AA가 주어진다.

두 원소 Ai,jA_{i,j}와 Ap,qA_{p,q} 사이의 거리는 ∣i−p∣+∣j−q∣|i - p| + |j - q|로 정의한다.

행렬의 각 00 원소를 자신과 가장 가까운 00이 아닌 원소의 값으로 바꾸어야 한다. 만약 최소 거리에 있는 00이 아닌 원소가 두 개 이상이면, 그 00은 바꾸지 않고 그대로 둔다.

입력

첫 줄에 정수 NN이 주어진다. 이어서 행렬을 행 우선 순서로 나열한 N2N^2개의 정수가 주어진다.

출력

바뀐 행렬을 출력한다. 각 행을 한 줄에 출력하며, 한 행에 있는 NN개의 정수는 공백 하나로 구분한다.

제한

  • 1≤N≤2001 \le N \le 200, 0≤Ai,j≤10000000 \le A_{i,j} \le 1000000

예제6

  1. 예제 1

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

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

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

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

    입력
    3
    0 0 0
    0 5 0
    0 0 0
    
    예상 출력
    5 5 5
    5 5 5
    5 5 5
    
  6. 예제 6

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