겹치지 않는 부분행렬 K개의 최대 합

아직 제출이 없습니다시간 제한2초메모리 제한32 MB

문제

정수로 이루어진 N×MN \times M 행렬이 주어진다. 서로 겹치지 않는 부분행렬을 정확히 KK개 골라서, 고른 부분행렬들에 속한 모든 원소의 총합을 최대로 만들고 싶다.

부분행렬이란 행렬에서 잘라낸, 연속된 행과 연속된 열로 이루어진 직사각형 격자를 말하며 크기는 최소 1×11 \times 1이다. 두 부분행렬이 겹친다는 것은 두 부분행렬이 공통으로 포함하는 칸이 하나라도 있다는 뜻이다. 변이나 꼭짓점만 맞닿는 경우는 겹치는 것으로 보지 않는다.

입력

첫 번째 줄에 세 정수 NN, MM, KK가 공백으로 구분되어 주어진다. 각각 행렬의 행의 수, 열의 수, 그리고 골라야 하는 부분행렬의 개수를 의미한다. (1K31 \le K \le 3, KN300K \le N \le 300, KM300K \le M \le 300)

이어지는 NN개의 줄에는 각 줄마다 MM개의 정수가 공백으로 구분되어 주어진다. ii번째 줄의 jj번째 수는 iijj열의 원소 aija_{ij}이다. (20000aij20000-20000 \le a_{ij} \le 20000)

출력

고른 KK개의 부분행렬에 속한 모든 원소의 합의 최댓값을 한 줄에 출력한다.

힌트

부분행렬은 반드시 정확히 KK개를 골라야 하며, 각 부분행렬의 크기는 최소 1×11 \times 1이다. 모든 원소가 음수인 경우에도 KK개를 반드시 골라야 하므로, 손해가 가장 작아지도록 골라야 한다.