Đường đi có tổng lớn nhất

View as PDF



Author:
Problem type
Points: 900 Time limit: 1.0s Memory limit: 256M Input: stdin Output: stdout

Hôm nay, Hiền đi chơi công viên với gia đình của mình. Cô vừa vào và nhìn bản đồ công viên thì một khu trò chơi mới lạ đã khiến cô thích thú. Hiền liền chạy đến chỗ đó để xem trò đó là gì. Khi vừa đến, họ nói rằng đây là một trò chơi rất khó và nếu giải được sẽ được tặng một con gấu bông siêu dễ thương. Hiền nghe xong liền đồng ý chơi và quyết tâm dành con gấu bông đó. Nhưng trò chơi ấy không dễ như cô nghĩ và trò chơi ấy như sau:

Cho một bảng có kích thước \(n\) x \(m\). Mỗi ô trong đó chứa một số nguyên dương. Bạn hãy tìm con đường đi từ ô \((1, 1)\) đến ô \((n, m)\) sao cho tổng các số trên đường đi là lớn nhất. Biết rằng chỉ được đi sang phải hoặc xuống dưới, nghĩa là từ ô \((x, y)\) chỉ có thể đi được đến ô \((x, y + 1)\) hoặc ô \((x + 1, y)\).

Hiền nghe xong liền ngồi xem đâu là con đường đi có tổng lớn nhất nhưng cô ngồi tính mãi không ra. Bạn là một dân lập trình có nhiều kinh nghiệm nên hãy giúp Hiền chiến thắng và dành được con gấu bông siêu dễ thương đó nhé.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\), \(m\) \((1 \le n, m \le 1000)\)
  • \(n\) dòng tiếp theo, dòng thứ \(i (1 \le i \le n)\) chứa \(m\) số nguyên dương \(a_{i,1}\), \(a_{i,2}\), \(...\), \(a_{i, m}\) \((a_{i, j} \le 10^{10})\)

Output

  • In ra tổng lớn nhất có thể đi được.

Example

Test 1

Input
4 4
4 3 2 1
1 2 3 4
4 5 6 7
5 4 3 2
Output
29
Note

Hiền có thể chọn con đường như sau: (1, 1) \(\rightarrow\) (2, 1) \(\rightarrow\) (3, 1) \(\rightarrow\) (3, 2) \(\rightarrow\) (3, 3) \(\rightarrow\) (3, 4) \(\rightarrow\) (4, 4). Kết quả là \(4 + 1 + 4 + 5 + 6 + 7 + 2 = 29\) là tổng lớn nhất.


Comments


  • 8
    flo    7:05 p.m. 12 mar, 2023

    Bài này mình ra cho vui với lại luyện cho mấy bạn mới và đang học dp OwO

    1 reply