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

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

밸런스

면접 대비

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

요약
N x N 행렬 A가 주어질 때, 모든 성분이 A 이상이고 균형 조건을 만족하는 행렬 B 중 합이 최소인 것을 찾아 합과 함께 출력한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 수학, 행렬
정답자
아직 제출이 없습니다

문제

N×NN \times N 크기의 행렬 AA가 모든 1≤i,j≤N−11 \le i, j \le N - 1에 대해 A[i][j]+A[i+1][j+1]=A[i+1][j]+A[i][j+1]A[i][j] + A[i + 1][j + 1] = A[i + 1][j] + A[i][j + 1]을 만족하면 밸런스하다고 한다.

N×NN \times N 크기의 행렬 AA가 주어진다. BB가 밸런스하고 모든 1≤i,j≤N1 \le i, j \le N에 대해 B[i][j]≥A[i][j]B[i][j] \ge A[i][j]를 만족하는 같은 크기의 행렬 BB를 출력하시오. 또한 BB의 원소 합은 가능한 한 최소여야 한다.

입력

첫째 줄에 정수 NN이 주어진다. 이는 행렬의 행과 열의 수이다 (1≤N≤501 \le N \le 50).

다음 NN개의 줄에 각각 NN개의 정수가 주어진다. 이들이 모여 행렬 AA를 이룬다. 모든 1≤i,j≤N1 \le i, j \le N에 대해 0≤A[i][j]≤35 0000 \le A[i][j] \le 35\,000임이 보장된다.

출력

첫째 줄에 찾은 밸런스 행렬 BB의 원소 합을 출력한다. 다음 NN개의 줄에 밸런스 행렬을 입력과 같은 형식으로 출력한다.

문제에서 설명한 조건을 만족하는 행렬이면 무엇이든 정답으로 인정된다. 출력하는 행렬의 원소 값에는 아무 제약이 없다 (특히 35 00035\,000을 넘어도 된다).

예제1

  1. 예제 1

    입력
    4
    1 1 1 1
    1 1 1 1
    1 1 1 0
    1 1 1 1
    
    예상 출력
    16
    1 1 1 1
    1 1 1 1
    1 1 1 1
    1 1 1 1