Công ty Long Vân đang sản xuất robot vận chuyển hàng hóa tự động. Để làm việc đó, công ty tiến hành huấn luyện các robot trên một địa hình được chia thành một lưới các ô vuông gồm \(𝑚\) dòng (đánh số từ 1 đến \(𝑚\) theo chiều từ trên xuống dưới) và \(𝑛\) cột (đánh số từ 1 đến \(n\) theo chiều từ trái sang phải). Ô giao giữa dòng \(i\), cột \(j\) được gọi là ô (\(i, j\)), có độ cao là \(ℎ_{𝑖𝑗}\ (|ℎ_{𝑖𝑗}| \le 10^9)\) và có điểm thưởng là \(𝑠_{𝑖𝑗}\ (|𝑠_{𝑖𝑗}| \le 10^9)\).
Một thử nghiệm cho robot như sau: Đặt robot ở một ô nào đó, điểm thưởng của robot bằng điểm thưởng tại ô được đặt, mỗi bước robot được phép dừng lại hoặc di chuyển sang ô chung cạnh có độ cao cao hơn độ cao của ô hiện tại. Khi robot di chuyển sang ô nào đó, điểm thưởng của robot được cộng một lượng là điểm thưởng tại ô đó.
Yêu cầu: Cho địa hình thử nghiệm robot, hãy tìm vị trí đặt robot và cách di chuyển của robot để khi robot dừng lại, tổng điểm thưởng của robot là lớn nhất.
Input
- Dòng đầu chứa hai số nguyên dương \(𝑚, 𝑛\);
- Tiếp theo là \(𝑚\) dòng mô tả độ cao của các ô trên địa hình, dòng thứ \(𝑖\) chứa \(𝑛\) số \(ℎ_{𝑖1}, ℎ_{𝑖2}, … , ℎ_{𝑖𝑛}\);
- Tiếp theo là \(𝑚\) dòng mô tả điểm thưởng của các ô trên địa hình, dòng thứ \(𝑖\) chứa \(𝑛\) số \(𝑠_{𝑖1}, 𝑠_{𝑖2}, … , 𝑠_{𝑖𝑛}\).
Output
- Một dòng chứa một số là tổng điểm nhiều nhất mà robot có thể đạt được.
Scoring
- Subtask #1 (\(20\%\) số điểm): \(𝑚 = 1; 𝑛 \leq 10^3\)
- Subtask #2 (\(20\%\) số điểm): \(𝑚 = 1; 𝑛 \leq 10^5\);
- Subtask #3 (\(20\%\) số điểm): \(𝑚 \times 𝑛 \leq 10^3\) và \(𝑠_{𝑖𝑗} = 1\);
- Subtask #4 (\(20\%\) số điểm): \(𝑚 \times 𝑛 \leq 10^5\) và \(𝑠_{𝑖𝑗} = 1\);
- Subtask #5 (\(20\%\) số điểm): \(𝑚 \times 𝑛 \leq 10^5\)
Example
Test 1
Input
3 4
1 2 3 4
4 5 5 7
8 7 6 5
1 1 1 1
1 1 1 1
1 1 1 1
Output
7
Bình luận
ai biết làm bài này ko v