문제
각 행에는 위에서부터 아래로
각 로봇은 하나 이상의 입력 값, 하나의 저장 값, 하나의 출력 값을 가진다.
로봇들은 제일 왼쪽 열의 로봇들부터 열 번호 순서대로 동작한다. 같은 열에 있는 로봇들은 동시에 동작한다.
로봇들의 동작은 다음과 같다. (표현
제일 왼쪽 열에 있는 로봇의 입력 값은 0 하나로 정한다.
좌표
(i, j) 의 로봇의 입력 값은|i−a| ≤ j −b, b < j 인 모든 좌표(a, b) 에 있는 로봇들의 출력 값들이다. (아래 그림에서 별로 표시된 칸의 로봇의 입력 값들은 왼쪽 회색 칸들의 로봇들의 출력 값들이다.)
각 로봇은 자신의 입력 값들 중 최댓값을 자신의 저장 값으로 한다.
각 로봇은 자신의 저장 값에 자신의 가중치
D_{i,j} 를 더한 값을 자신의 출력 값으로 한다.
로봇들의 가중치를 입력받아 로봇들의 저장 값 중 최댓값(가장 큰 값)을 계산하는 프로그램을 작성하라.
입력
첫 번째 줄에 두 정수
다음
제약 조건
1 ≤ M ≤ 2,000 1 ≤ N ≤ 2,000 모든
i, j (1 ≤ i ≤ M, 1 ≤ j ≤ N )에 대해,1 ≤ D_{i,j} ≤ 9
출력
첫 번째 줄에 로봇들의 저장 값 중 최댓값을 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 3점 | |
| #2 | 8점 | |
| #3 | 9점 | |
| #4 | 21점 | |
| #5 | 59점 | 추가 제약 조건 없음. |
예제
3 4
1234
2341
3412
11