겹치지 않는 부분행렬 K개의 최대 합
시간 제한2초메모리 제한32 MB
N x M 행렬에서 서로 겹치지 않는 직사각형 부분행렬 K개를 정확히 골라 원소 합이 최대가 되도록 한다.
문제
정수로 이루어진 행렬이 주어진다. 서로 겹치지 않는 부분행렬을 정확히 개 골라서, 고른 부분행렬들에 속한 모든 원소의 총합을 최대로 만들고 싶다.
부분행렬이란 행렬에서 잘라낸, 연속된 행과 연속된 열로 이루어진 직사각형 격자를 말하며 크기는 최소 이다. 두 부분행렬이 겹친다는 것은 두 부분행렬이 공통으로 포함하는 칸이 하나라도 있다는 뜻이다. 변이나 꼭짓점만 맞닿는 경우는 겹치는 것으로 보지 않는다.
입력
첫 번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다. 각각 행렬의 행의 수, 열의 수, 그리고 골라야 하는 부분행렬의 개수를 의미한다. (, , )
이어지는 개의 줄에는 각 줄마다 개의 정수가 공백으로 구분되어 주어진다. 번째 줄의 번째 수는 행 열의 원소 이다. ()
출력
고른 개의 부분행렬에 속한 모든 원소의 합의 최댓값을 한 줄에 출력한다.
힌트
부분행렬은 반드시 정확히 개를 골라야 하며, 각 부분행렬의 크기는 최소 이다. 모든 원소가 음수인 경우에도 개를 반드시 골라야 하므로, 손해가 가장 작아지도록 골라야 한다.