만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

격자 연결하기

면접 대비

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

요약
N×M 격자의 각 칸에 정수가 적혀 있을 때, 두 칸을 골라 그 사이 최단 경로에 있는 칸 값의 합을 최대로 구합니다.
난이도

보통10점 중 4점

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

문제

각 격자에 정수가 적힌 N×MN\times M 크기의 격자판이 있다. 격자판 점수는 격자 2개를 고른 뒤 최단 경로로 연결했을 때, 연결된 경로에 있는 격자들에 적힌 수의 합으로 계산한다.

최단 경로가 여러 개면 그중 아무 경로를 골라도 된다. 연결된 경로에는 고른 두 격자도 포함된다. 같은 위치의 격자를 두 번 고를 수도 있는데, 이때는 그 격자의 수를 한 번만 더한다.

임의의 두 격자를 골랐을 때 얻을 수 있는 격자판 점수의 최댓값을 구한다.

입력

첫째 줄에 격자판의 세로 크기 NN과 가로 크기 MM이 공백으로 구분되어 주어진다. (1≤N,M≤1,000)(1\leq N,M\leq 1,000)

둘째 줄부터 NN줄에 걸쳐 격자의 점수 AijA_{ij}가 공백으로 구분되어 주어진다. (∣Aij∣≤1,000; 1≤i≤N; 1≤j≤M)(|A_{ij}|\leq 1,000;\ 1\leq i\leq N;\ 1\leq j\leq M)

출력

두 격자를 골랐을 때 얻을 수 있는 격자판 점수의 최댓값을 출력한다.

힌트

(r,c)(r, c)를 기준으로 (3,1)(3, 1) 위치의 격자와 (2,4)(2, 4) 위치의 격자를 고르면 4,5,7,−3,64, 5, 7, -3, 6을 선택하여 1919점을 얻는다.

예제2

  1. 예제 1

    입력
    4 4
    -1 -3 -2 -1
    2 1 -3 6
    4 5 7 -4
    -4 -6 -3 -3
    
    예상 출력
    19
    
  2. 예제 2

    입력
    1 1
    -3
    
    예상 출력
    -3