문제
M개의 행(가로줄)과 N개의 열(세로줄)이 있는 격자의 각 칸에는 로봇이 있다.
각 행에는 위에서부터 아래로 1부터 M까지의 번호가 붙어 있고, 각 열에는 왼쪽에서부터 오른쪽으로 1부터 N까지의 번호가 붙어 있다. 이를 통해 격자 칸의 위치를 (행 번호, 열 번호)의 좌표로 표시할 수 있다.
각 로봇은 하나 이상의 입력 값, 하나의 저장 값, 하나의 출력 값을 가진다.
로봇들은 제일 왼쪽 열의 로봇들부터 열 번호 순서대로 동작한다. 같은 열에 있는 로봇들은 동시에 동작한다.
로봇들의 동작은 다음과 같다. (표현
• 제일 왼쪽 열에 있는 로봇의 입력 값은 0 하나로 정한다.
• 좌표 (i, j)의 로봇의 입력 값은
• 각 로봇은 자신의 입력 값들 중 최댓값을 자신의 저장 값으로 한다.
• 각 로봇은 자신의 저장 값에 자신의 가중치
로봇들의 가중치를 입력받아 로봇들의 저장 값 중 최댓값(가장 큰 값)을 계산하는 프로그램을 작성하라.
입력
첫 번째 줄에 두 정수 M과 N이 공백 하나를 사이로 두고 주어진다.
다음 M개의 줄에는 로봇들의 가중치들이 행 순서대로 주어진다. 각각의 줄은 한 행에 해당하며 N개의 숫자(한 자리 수)로 이루어진 문자열이 주어진다. 각 숫자는 격자 칸의 로봇의 가중치를 의미한다. 즉, 여기서 i번째 줄의 j번째 문자가
[제약 조건]
• 1
•
• 모든
출력
첫 번째 줄에 로봇들의 저장 값 중 최댓값을 출력한다.
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 3점 | N = 1. |
#2 | 8점 | N = 2. |
#3 | 9점 | M = 1. |
#4 | 21점 | M ≤ 100, N ≤ 100. |
#5 | 59점 | 추가 제약 조건 없음. |
예제1
34
1234
2341
3412
11