Đoạn con có tổng lớn nhất

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Cho một dãy gồm ~n~ số nguyên. Hãy chọn một đoạn liên tiếp, không rỗng của dãy sao cho tổng các phần tử trong đoạn là lớn nhất và in ra tổng đó.

Dữ liệu vào

Dòng đầu tiên chứa số nguyên ~n~ (~1 \le n \le 3000~).

Dòng thứ hai chứa ~n~ số nguyên ~a_1, \dots, a_n~ (~|a_i| \le 10^6~).

Kết quả

In ra tổng lớn nhất của một đoạn liên tiếp.

Ví dụ

Ví dụ 1

Input:

5
1 -2 3 4 -1

Output:

7

Ví dụ 2

Input:

3
-5 -2 -9

Output:

-2

Giải thích

Với 1 -2 3 4 -1 đoạn tốt nhất là 3 4 có tổng ~7~. Hãy thử mọi đoạn ~[l, r]~ và cộng dồn tổng khi ~r~ tăng dần (không cần tính lại từ đầu). Nếu mọi số đều âm thì đáp án là số âm lớn nhất.


Đang tải...