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

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

곡예 비행

면접 대비

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

요약
각 칸에 점수가 있는 N×M 격자에서 왼쪽 아래 칸에서 위나 오른쪽으로만 이동하는 상승과, 그 도착 칸에서 아래나 오른쪽으로만 이동해 오른쪽 아래 칸에 도착하는 하강의 방문 칸 점수 합의 최댓값을 구한다.
난이도

보통10점 중 6점

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

문제

동헌이는 모형 비행기 조종 대회에 참가하였다. 이 대회에서는 격자 모양의 공간에서 모형 비행기를 조종하여 얻는 비행 점수로 순위를 매긴다. 격자의 각 칸에는 점수가 부여되어 있고, 비행 점수는 "상승 비행을 할 때 지나간 칸에 부여된 점수의 총합"과 "하강 비행을 할 때 지나간 칸에 부여된 점수의 총합"을 더한 값이다. 출발한 칸과 도착한 칸도 지나간 칸으로 간주한다.

<그림 1> 시작과 끝 칸 및 가능한 이동 방향

모형 비행기는 맨 왼쪽 아래 칸에서 상승 비행으로 비행을 시작해야 하고, 중간에 상승 비행에서 하강 비행으로 변경한 후, 맨 오른쪽 아래 칸에서 하강 비행으로 비행을 종료해야 한다. 상승 비행에서 하강 비행으로 변경할 때에는 다른 칸으로 이동할 수 없다. 즉, 상승 비행이 끝난 칸에서 하강 비행을 시작해야 한다.

모형 비행기는 상승 비행 중에는 앞 또는 위로만 이동할 수 있고, 하강 비행 중에는 앞 또는 아래로만 이동할 수 있다.

<그림 2> 모형 비행기의 이동 경로

위의 예시에서, 각 칸에 적힌 수는 그 칸에 부여된 점수이고, 수가 적혀 있지 않은 칸의 점수는 0이라고 가정하자. 그리고 모형 비행기가 1, 2, ..., 15의 순서대로 비행을 했다고 가정하자.

<그림 3> 상승 비행의 이동 경로

<그림 4> 하강 비행의 이동 경로

이 경우, 상승 비행은 1이 적힌 칸에서 시작하고 8이 적힌 칸에서 끝난다. 하강 비행은 8이 적힌 칸에서 시작하고 15가 적힌 칸에서 끝난다. 이와 같이 비행을 하였을 때 얻는 점수는 (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8) + (8 + 9 + 10 + 11 + 12 + 13 + 14 + 15) = 128 이다.

동헌이는 이 대회에서 얻을 수 있는 최대 비행 점수가 궁금하다. 동헌이를 위해 얻을 수 있는 최대 비행 점수를 구해주자.

입력

첫째 줄에 심사위원들이 나눠놓은 구역(격자)의 세로 길이 NN, 가로 길이 MM이 공백과 함께 주어진다.

두 번째 줄부터 N+1N+1번째 줄까지, 각 칸에 해당하는 점수가 한 줄에 한 행씩 공백과 함께 주어진다.

출력

동헌이가 얻을 수 있는 최대 점수를 출력하라.

제한

  • 1≤N,M≤1,0001 \le N, M \le 1,000
  • −10,000≤-10,000 \le 점수 ≤10,000\le 10,000

예제5

  1. 예제 1

    입력
    3 4
    1 5 -6 1
    3 -3 9 5
    1 -1 1 -3
    
    예상 출력
    23
    
  2. 예제 2

    입력
    5 5
    100 100 100 100 100
    100 -100 -100 -100 100
    100 -100 -100 -100 100
    100 -100 -100 -100 100
    100 -100 -100 -100 100
    
    예상 출력
    1400
    
  3. 예제 3

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

    입력
    1 1
    -1
    
    예상 출력
    -2
    
  5. 예제 5

    입력
    5 1
    1
    1
    1
    1
    1
    
    예상 출력
    10