duong3982oj Contest 03 - Đường đi trên lưới

Xem dạng PDF

Gửi bài giải


Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Cho một lưới ~n \times n~. Mỗi ô có giá trị là ~a_{i, j}~ (~0 \le |a_{i, j}| \le 10^3~).

Bạn đang đứng tại vị trí ~(1, 1)~ và nhiệm vụ của bạn phải di chuyển tới vị trí ~(n, n)~ cho trước.

Bạn có thể được lựa chọn một trong ba cách đi như sau:

  • Đi sang ô kề phải. (→)
  • Đi sang ô kề dưới. (↓)
  • Đi sang ô đi theo đường chéo xuống phải. (↘)

Tuy nhiên, bạn bị giới hạn bởi số lần ~c~ với cách đi thứ ba. Hỏi bạn có thể đi như nào mà tổng tất cả các giá trị của các ô bạn đi qua là lớn nhất mà số lần đi theo đường chéo không đi quá ~c~ lần? Lưu ý, mỗi ô chỉ được đi qua đúng một lần.

Lưu ý: Giá trị của ô ~a_{1, 1}~ cũng được tính vào kết quả.

INPUT

Dòng đầu tiên ghi hai số nguyên ~n, c~ (~2 \le n \le 300, 0 \le c \le 10^9~).

~n~ dòng tiếp theo, dòng thứ ~i~ gồm ~n~ số nguyên ~a_{i, j}~ (~0 \le |a_{i, j}| \le 10^3~)

OUTPUT

Dòng duy nhất là đáp số của bài toán trên.

SAMPLE INPUT 1

3 1
0 1 1
1 1 1
1 1 1

SAMPLE OUTPUT 1

4

SAMPLE INTPUT 2

2 1
0 2
2 3

SAMPLE OUTPUT 2

5

SUBTASKS

Subtask Điểm Ràng buộc
1 ~30~ ~n \le 3~.
2 ~30~ ~n \le 10~.
3 ~40~ Không có ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.