꿀잼 루비 문제

시간 제한1초메모리 제한1024 MB

요약
N×M 격자에서 상하좌우로 인접하지 않게 최대 K개의 칸을 골라 가치 합의 최댓값을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

보물 사냥꾼 나도리는 N×MN \times M 격자 모양의 루비 광산에 도착했다. 격자의 ii행 jj열의 칸에는 가치 A_ijA\_{ij}의 루비가 묻혀 있고, 나도리는 이 중 최대 KK개의 루비를 캐려고 한다.

하지만 나도리의 숙적 너도리가 등장하여 광산에 어떠한 장치를 설치하였다. 이 장치는 만약 나도리가 상하좌우로 인접한 두 칸 모두에서 루비를 캔다면 그 즉시 광산을 폭발시키고 말 것이다.

나도리가 장치를 작동시키지 않으면서 루비 가치의 합이 최대가 되도록 캐는 방법을 찾아보자.

입력

첫째 줄에 정수 NN, MM, KK가 공백을 사이에 두고 주어진다. (1≤N,M≤1,000(1 \le N, M \le 1\\,000; 1≤K≤5)1 \le K \le 5)

둘째 줄부터 NN개의 줄에 걸쳐 루비의 가치가 MM개의 정수로 공백을 사이에 두고 주어진다. 1≤i≤N1 \le i \le N 과 1≤j≤M1 \le j \le M에 대해, i+1i + 1번째 줄의 jj번째 정수는 A_ijA\_{ij}를 나타낸다. (0≤A_ij≤1,000)(0 \le A\_{ij} \le 1\\,000)

출력

나도리가 캘 수 있는 루비 가치의 합의 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    3 3 3
    1 9 1
    3 9 3
    9 1 3
    
    예상 출력
    21
    
  2. 예제 2

    입력
    1 1 5
    1
    
    예상 출력
    1