만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이동하기 2

면접 대비

시간 제한2초메모리 제한512 MB

요약
N×N 격자에 담긴 사탕이 있을 때, (1,1)에서 (N,N)으로 가는 K개의 단조 경로로 중복 없이 최대한 많은 사탕을 모은다.
난이도

보통10점 중 7점

유형
동적 계획법, 구현, 행렬
정답자
아직 제출이 없습니다

문제

준규는 N×NN \times N 크기의 미로에 갇혀 있다. 미로는 1×11 \times 1 크기의 방으로 나뉘어 있고, 각 방에는 사탕이 놓여 있다. 방은 (r,c)(r, c)로 나타내며 rr행 cc열이라는 뜻이다. 가장 왼쪽 위 방이 (1,1)(1, 1)이고, 가장 오른쪽 아래 방이 (N,N)(N, N)이다.

준규는 (1,1)(1, 1)에서 출발해 (N,N)(N, N)까지 가는 이동을 총 KK번 한다. (r,c)(r, c)에 있으면 (r+1,c)(r+1, c)나 (r,c+1)(r, c+1)로만 갈 수 있고, 미로 밖으로 나갈 수는 없다. 방에 들어가면 그 방에 남아 있는 사탕을 모두 가져간다. 이미 사탕을 가져간 방을 다시 지나가면 그 방에서 가져올 사탕은 없다. 같은 경로를 여러 번 골라도 된다.

KK번의 이동을 마쳤을 때 가져올 수 있는 사탕 개수의 최댓값을 구하시오.

입력

첫째 줄에 미로의 크기 NN과 이동 횟수 KK가 주어진다. (1≤N≤501 \le N \le 50, 0≤K≤100 \le K \le 10)

둘째 줄부터 NN개 줄에는 각각 NN개의 수가 주어진다. rr번째 줄의 cc번째 수는 (r,c)(r, c)에 놓여 있는 사탕의 개수이며, 0 이상 1,000 이하이다.

출력

첫째 줄에 준규가 KK번 이동하면서 가져올 수 있는 사탕 개수의 최댓값을 출력한다. KK가 0이면 이동을 한 번도 하지 않으므로 0을 출력한다.

예제7

  1. 예제 1

    입력
    3 2
    1 2 3
    0 2 1
    1 4 2
    
    예상 출력
    15
    
  2. 예제 2

    입력
    1 0
    7
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 10
    1000
    
    예상 출력
    1000
    
  4. 예제 4

    입력
    3 0
    5 5 5
    5 5 5
    5 5 5
    
    예상 출력
    0
    
  5. 예제 5

    입력
    2 1
    1 1000
    1 1
    
    예상 출력
    1002
    
  6. 예제 6

    입력
    2 2
    1 2
    3 4
    
    예상 출력
    10
    
  7. 예제 7

    입력
    3 3
    1 2 3
    4 5 6
    7 8 9
    
    예상 출력
    45