Mảng con có tổng lớn nhất sau khi xoá
Xem PDFCho một mảng số nguyên \(a\) độ dài \(n\). Bạn cần chọn ra một mảng con liên tiếp không rỗng của \(a\). Sau khi chọn, bạn được phép xóa tối đa một phần tử khỏi mảng con đó (hoặc giữ nguyên không xóa phần tử nào).
Hãy tìm tổng lớn nhất có thể đạt được của mảng con sau khi thực hiện thao tác trên.
Lưu ý: Mảng con sau khi xóa (nếu có) không được phép rỗng. Nghĩa là nếu bạn chọn mảng con chỉ có 1 phần tử, bạn không được phép xóa phần tử đó.
Input
- Dòng đầu tiên chứa một số nguyên dương \(n\) — số lượng phần tử của mảng.
- Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) cách nhau bởi khoảng trắng.
Output
- In ra một số nguyên duy nhất là tổng lớn nhất có thể đạt được.
Constraints
- \(1 \le n \le 10^5\)
- \(-10^4 \le a_i \le 10^4\)
Example
Test 1
Input
4
1 -2 0 3
Output
4
Note
Bạn chọn mảng con \([1, -2, 0, 3]\) và xóa đi phần tử \(-2\). Tổng còn lại là \(1 + 0 + 3 = 4\).
Test 2
Input
4
1 -2 -2 3
Output
3
Note
Bạn chọn mảng con chỉ gồm phần tử \([3]\) và không xóa phần tử nào. (Nếu bạn chọn \([1, -2, -2, 3]\) và xóa một số \(-2\), tổng chỉ là \(1 - 2 + 3 = 2\), nhỏ hơn \(3\)).
Test 3
Input
3
-1 -2 -3
Output
-1
Note
Bạn chọn mảng con \([-1]\) và không xóa gì cả. Không thể chọn \([-1]\) rồi xóa nó vì mảng con kết quả không được phép rỗng.
Scoring
- Subtask \(1\) (\(20\%\) số điểm): \(n \le 500\).
- Subtask \(2\) (\(30\%\) số điểm): \(n \le 5000\).
- Subtask \(3\) (\(50\%\) số điểm): Không có ràng buộc gì thêm.
Bình luận