Bài 5. Tổng lớn nhất (TS10 Đắk Lắk 2021)

Xem PDF



Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Điểm: 1400 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho dãy số nguyên \(A = (a_1, a_2, \dots, a_n)\). Một dãy con của dãy \(A\) được tạo ra bằng cách xóa đi một số phần tử của dãy \(A\) (có thể không xóa phần tử nào) và giữ nguyên thứ tự các phần tử còn lại.

Yêu cầu: Hãy tìm một dãy con của dãy \(A\) sao cho tổng các phần tử của dãy con đó là lớn nhất, với điều kiện trong dãy con không có hai phần tử nào đứng cạnh nhau trong dãy \(A\) ban đầu.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(n \le 10^6\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(|a_i| \le 10^9\)).

Output

  • Một số nguyên duy nhất là tổng lớn nhất tìm được.

Example

Test 1

Input
5
-2 5 3 1 6
Output
11
Note

Dãy con thỏa mãn điều kiện và có tổng lớn nhất là \((5, 6)\) với tổng bằng \(11\). Lưu ý rằng mặc dù tổng của dãy con \((5, 3, 6)\) lớn hơn nhưng không thỏa mãn điều kiện vì phần tử \(5\) và \(3\) đứng cạnh nhau trong dãy \(A\).

Scoring

  • Có \(60\%\) số test ứng với \(60\%\) số điểm của bài có \(n \le 10^3\).
  • Có \(40\%\) số test còn lại ứng với \(40\%\) số điểm của bài có \(n \le 10^6\).

Bình luận (1)

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