ROBOT MANG QUÀ

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một bảng \(A\) kích thước \(n \times m\) ô, trên mỗi ô ghi một số nguyên dương là số lượng quà mà một con robot cần mang đi. Con robot xuất phát tại một ô \(A[i, 1]\) nào đó của cột \(1\) (\(1 \le i \le n\)) cần di chuyển sang một ô lân cận của cột tiếp theo. Cụ thể, từ ô \(A[i, j]\), con robot chỉ được di chuyển sang một trong ba ô sau: \(A[i, j+1]\), \(A[i-1, j+1]\), \(A[i+1, j+1]\) và khi con robot đi qua ô nào thì mang theo toàn bộ lượng quà ở ô đó.

Yêu cầu

Hãy tìm đường đi cho con robot từ một ô nào đó của cột \(1\) đến một ô nào đó của cột \(m\) để cho tổng lượng quà mà con robot mang đi là lớn nhất.

Input

  • Dòng đầu tiên ghi hai số nguyên \(n\) và \(m\) cách nhau ít nhất một dấu cách (\(1 \le n, m \le 1000\)).
  • Dòng thứ \(i\) trong \(n\) dòng tiếp theo ghi \(m\) số nguyên dương, mỗi số không vượt quá \(10^5\) và hai số liên tiếp cách nhau ít nhất một dấu cách.

Output

  • Gồm một dòng duy nhất là tổng lượng quà lớn nhất mà con robot có thể mang đi.

Example

Test 1

Input
3 5
7 3 8 1 5
8 8 3 14 1
6 15 19 1 1
Output
61

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(1 \le n, m \le 500\).
  • Subtask \(2\) (\(30\%\) số điểm): \(500 < n, m \le 800\).
  • Subtask \(3\) (\(20\%\) số điểm): \(800 < n, m \le 1000\).

Bình luận (4)

Mới nhất
Tải bình luận...