만드는 중입니다

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

도마뱀붙이

면접 대비

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

요약
윗줄 칸에서 시작해 매 행마다 바로 아래 세 칸 중 하나로 이동하며 먹는 모기 수 합을 최대로 합니다.
난이도

쉬움10점 중 3점

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

문제

장마철이 되자 집 안의 벽 하나에 모기가 잔뜩 앉았다. 벽은 h×wh \times w 개의 정사각형 타일로 덮여 있고, 위에서 아래로 hh 개의 행, 왼쪽에서 오른쪽으로 ww 개의 열이 있다. 타일 하나마다 모기가 11 마리 이상 10001000 마리 이하로 앉아 있다.

도마뱀붙이 한 마리가 다음 규칙을 지키면서 모기를 최대한 많이 먹으려고 한다. 먼저 맨 윗줄에서 타일 하나를 골라 그 타일의 모기를 먹는다. 그다음 바로 아랫줄의 타일로 옮겨 가 그 타일의 모기를 먹고, 바닥에 닿을 때까지 같은 방식으로 내려간다. 한 줄 아래로 내려갈 때는 바로 아래, 왼쪽 대각선 아래, 오른쪽 대각선 아래 중 한 곳으로만 갈 수 있다 (그림 1).

그림 1 한 줄 아래로 내려갈 때 도마뱀붙이는 바로 아래, 왼쪽 대각선 아래, 오른쪽 대각선 아래로만 이동한다.

hh 와 ww, 그리고 각 타일에 앉은 모기 수가 주어진다. 도마뱀붙이가 벽의 맨 위에서 맨 아래까지 한 번 내려오면서 먹을 수 있는 모기 수의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 두 개가 주어진다. 첫 번째 정수 hh (1≤h≤5001 \le h \le 500) 는 벽에 있는 타일의 행 수이고, 두 번째 정수 ww (1≤w≤5001 \le w \le 500) 는 타일의 열 수이다.

이어서 hh 개의 줄이 주어진다. ii 번째 줄은 위에서 ii 번째 행에 있는 타일의 모기 수를 나타낸다. 각 줄에는 정수가 ww 개 있고 공백 하나로 구분된다. 각 정수 mm (1≤m≤10001 \le m \le 1000) 은 그 타일에 앉은 모기 수이다.

출력

첫째 줄에 도마뱀붙이가 벽의 맨 위에서 맨 아래까지 한 번 내려오면서 먹을 수 있는 모기 수의 최댓값을 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    6 5
    3 1 7 4 2
    2 1 3 1 1
    1 2 2 1 8
    2 2 1 5 3
    2 1 4 4 4
    5 7 2 5 1
    
    예상 출력
    32