#PS0000014. Tổng đoạn con lớn nhất (Maximum Subarray Sum)

Tổng đoạn con lớn nhất (Maximum Subarray Sum)

Tổng đoạn con lớn nhất (Maximum Subarray Sum)

Nguồn: CSES

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho mảng nn số nguyên. Hãy tìm tổng lớn nhất có thể của một đoạn con liên tiếp không rỗng.

Nếu chọn đoạn [l,r][l,r], giá trị của đoạn là

al+al+1+⋯+ar.a_l+a_{l+1}+\cdots+a_r.

Các phần tử có thể âm, vì vậy đoạn tối ưu không nhất thiết là toàn bộ mảng.

Input

  • Dòng đầu chứa số nguyên nn.
  • Dòng thứ hai chứa nn số nguyên a1,a2,…,ana_1,a_2,\ldots,a_n.

Output

In tổng lớn nhất của một đoạn con liên tiếp không rỗng.

Subtask

Điều kiện chung đã đối chiếu với nguồn:

  • 1≤n≤2⋅1051\le n\le2\cdot10^5

  • −109≤xi≤109-10^9\le x_i\le10^9

  • Đoạn con phải không rỗng.

  • Subtask 1 — 20%: n≤40n\le40

  • Subtask 2 — 30%: Mọi phần tử đều không âm: ai≥0a_i\ge0.

  • Subtask 3 — 50%: không có điều kiện bổ sung ngoài các điều kiện chung ở trên.

Ví dụ

Input

8
-1 3 -2 5 3 -5 2 2

Output

9

Giải thích

Với dãy

[−1,3,−2,5,3,−5,2,2],[-1,3,-2,5,3,-5,2,2],

đoạn từ vị trí 22 đến vị trí 55 có tổng

3−2+5+3=9.3-2+5+3=9.

Không có đoạn liên tiếp nào có tổng lớn hơn 99, nên kết quả là 99.