아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

명랑한 아리의 외출

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

요약
아리는 (0,0)에서 (N-1,M-1)까지 오른쪽, 아래, 대각선 이동만 하며, 각 칸에서 t[i][j]분을 들여 w[i][j]개의 일을 선택적으로 처리해 제한 시간 T 안에 최대 일의 수를 구한다.
난이도

보통10점 중 6점

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

문제

집순이 아리는 오랜만에 집 밖을 나와 쿠기를 만나러 학교를 가려고 한다. 이때 아리는 겸사겸사 학교로 가는 경로에 있는 장소들에서 최대한 많은 일을 처리하고 가려고 한다.

아리는 N × M 의 격자 공간에서 움직이고, 집은 격자 공간의 최좌측 상단 (0, 0), 학교는 최우측 하단(N-1, M-1)이다. 아리의 현재 위치가 (a, b)일 때, 항상 (a+1, b), (a, b+1), (a+1, b+1) 위치 중 하나로 움직인다. 단, 한 번 이동할 때마다 추가로 1분이 걸린다.

각 위치에서 할 수 있는 일들과 그 일들을 모두 수행했을 때 걸리는 시간이 주어진다. 각 장소들에서 아리는 일을 처리할지 말지 선택할 수 있으며, 한 장소에서 일을 시작하면 모든 일을 완료할 때까지 중단할 수 없고 일들을 수행하면 걸리는 시간만큼 시간이 소요된다.

명랑한 아리가 쿠기와의 약속을 위해 집에서 학교로 갈 때, 집에서 학교로 가는 경로의 장소들에서 약속까지 남은 시간 동안 가장 많이 할 수 있는 일의 양을 구하자.

입력

정수 N과 M이 주어지고(2 ≤ N, M ≤ 50), 아리에게 남은 시간 정수 T가 분 단위로 주어진다. (N + M - 1 ≤ T ≤ 500)

먼저 i(0 ≤ i < N)번째 행 j(0 ≤ j < M)번째 열의 장소에서 할 수 있는 일들의 개수, 정수 wij(0 ≤ wij ≤ 100)가 N행 M열에 걸쳐서 주어지고,

다음으로 i(0 ≤ i < N)번째 행 j(0 ≤ j < M)번째 열의 장소에서 일들을 모두 수행했을 때 걸리는 시간, 정수 tij(0 ≤ tij ≤ 100)가 N행 M열에 걸쳐서 주어진다.

단, 집과 학교에서 아리가 할 수 있는 일은 없다.

출력

쿠기와 학교에서 만나기로 한 약속을 지키면서, 약속까지 남은 시간 내 아리가 가장 많이 할 수 있는 일의 수를 출력한다.

예제2

  1. 예제 1

    입력
    6 5 15
    0 2 1 3 1
    3 1 4 2 2
    1 4 1 3 1
    2 1 4 1 7
    1 3 2 3 1
    4 1 1 5 0
    0 1 3 2 5
    4 3 5 2 3
    1 2 2 2 1
    3 1 2 1 2
    1 3 1 2 1
    3 2 1 1 0
    
    예상 출력
    18
    
  2. 예제 2

    입력
    3 3 5
    0 10 0
    13 20 11
    45 14 0
    0 10 10
    10 10 10
    10 10 0
    
    예상 출력
    0